*{box-sizing:border-box}body{margin:0;background:#f3f5f8;font-family:"Noto Sans Khmer","Khmer OS Battambang",Arial,sans-serif;color:#172033}header{background:linear-gradient(135deg,#17365d,#0d2949);color:#fff;padding:18px 5%;border-bottom:4px solid #c9a227}.mast{max-width:1180px;margin:auto;display:flex;align-items:center;gap:16px}.seal{width:58px;height:58px;border:2px solid #d7bc61;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-weight:700;color:#f4dc85}.gov{font-weight:700}.motto{font-size:12px;color:#f1df9e;margin:2px 0}.brand{font-size:19px;font-weight:700}main{max-width:1180px;margin:28px auto;padding:0 16px}footer{text-align:center;padding:26px;color:#667085;font-size:12px}.card,.survey-head{background:#fff;border:1px solid #e5e9ef;border-radius:12px;padding:24px;margin:18px 0;box-shadow:0 3px 14px #162b4a0b}.narrow{max-width:560px;margin:70px auto}.big,input,select,textarea{font:inherit}input.big,select,textarea{width:100%;padding:12px;border:1px solid #cbd3df;border-radius:8px;margin:10px 0;background:#fff}button,.btn{background:#17365d;color:#fff;border:0;border-radius:7px;padding:11px 16px;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}.ghost{background:#fff;color:#17365d;border:1px solid #cbd3df}.q{padding:18px 0;border-bottom:1px solid #edf0f5}.q h3{font-size:16px;line-height:1.8}.opts label{display:block;padding:8px 4px}.matrix-row{padding:10px 0;border-bottom:1px dashed #ddd}.scale{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.progress{height:10px;background:#e4e8ef;border-radius:10px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:#c9a227}.error{color:#b42318}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpis>div{background:#fff;padding:18px;border-radius:12px;border:1px solid #e5e9ef}.kpis b{font-size:28px;display:block;color:#17365d}.kpis b i{font-size:14px;font-style:normal;color:#667085}.kpis span,.kpis small{color:#667085}.analytic>div{border-top:3px solid #c9a227}.grid{display:grid;grid-template-columns:100px 1fr 1fr 1fr auto;gap:8px;align-items:center}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #e8ebf0;text-align:left}.adminbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.adminbar>div:first-child{margin-right:auto}.adminbar h1{margin:2px 0}.eyebrow{font-size:11px;letter-spacing:1.5px;color:#8a6c13;font-weight:700}.filters{display:grid;grid-template-columns:repeat(3,1fr) auto auto;gap:10px;align-items:center}.filters select{margin:0}.filters a{color:#17365d}.two{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.two .card{margin:0}.muted{color:#667085;font-size:13px}.metric{margin:17px 0}.metric>div:first-child{display:flex;justify-content:space-between;gap:10px}.bar{height:9px;background:#edf0f4;border-radius:9px;overflow:hidden;margin-top:7px}.bar i{display:block;height:100%;background:#17365d;border-radius:9px}.rank{display:grid;grid-template-columns:30px 1fr 35px;gap:8px;align-items:start;padding:10px 0;border-bottom:1px solid #edf0f5}.rank>b{background:#f0e7c6;color:#725b11;width:26px;height:26px;border-radius:50%;display:grid;place-items:center}.rank strong{text-align:right}.supportgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.supportgrid>div{padding:14px;background:#f7f8fa;border-radius:8px;text-align:center}.supportgrid span{display:block;font-size:12px;color:#667085}.supportgrid b{font-size:22px;color:#17365d}.supportgrid small{color:#667085}.note{padding:16px 18px;border-left:4px solid #c9a227;background:#fff9e8;margin:18px 0;border-radius:6px;font-size:13px}@media(max-width:850px){.kpis{grid-template-columns:1fr 1fr}.grid,.filters{grid-template-columns:1fr}.two{grid-template-columns:1fr}.supportgrid{grid-template-columns:repeat(3,1fr)}}@media(max-width:520px){.kpis{grid-template-columns:1fr}.card{padding:16px}.scale{display:grid;grid-template-columns:1fr 1fr}.supportgrid{grid-template-columns:repeat(2,1fr)}.gov{font-size:14px}.brand{font-size:16px}.seal{width:48px;height:48px}}

/* V3.1 validation feedback */
.q.q-missing{border-left:4px solid #c0392b;padding-left:14px;background:#fff8f7;border-radius:6px}
.matrix-row.missing{background:#fff0ee;border-radius:6px;padding:8px}
.q.attention,.matrix-row.attention{outline:3px solid rgba(192,57,43,.28);outline-offset:3px}

/* V3.2 — official header, sticky progress and submit status dialog */
.site-header{padding:10px 5%;background:linear-gradient(135deg,#17365d,#0d2949);border-bottom:4px solid #d7b846}.site-header .mast{min-height:108px;gap:26px}.ocm-logo{width:118px;height:118px;object-fit:contain;flex:0 0 auto}.mast-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:390px}.gov,.motto{font-family:"Khmer OS Muol Light","Moul","Noto Serif Khmer",serif;color:#fff;text-align:center}.gov{font-size:25px;line-height:1.35;font-weight:400}.motto{font-size:20px;line-height:1.35;margin:1px 0 2px;color:#fff}.brand{font-family:"Noto Sans Khmer","Khmer OS Battambang",sans-serif;color:#fff;font-size:22px;font-weight:700;text-align:center}.ornament{width:330px;max-width:100%;height:18px;object-fit:fill;margin:1px 0 2px}.sticky-progress{position:sticky;top:0;z-index:50;margin-top:0;border-radius:0 0 12px 12px;box-shadow:0 5px 18px rgba(23,54,93,.14)}
.submit-dialog-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.58);display:grid;place-items:center;z-index:9999;padding:20px}.submit-dialog{width:min(480px,100%);background:#fff;border-radius:18px;padding:30px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.3);border-top:8px solid}.submit-dialog.success{border-color:#198754}.submit-dialog.failure{border-color:#dc3545}.dialog-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;color:#fff;font-size:42px;font-weight:800}.success .dialog-icon,.success button{background:#198754}.failure .dialog-icon,.failure button{background:#dc3545}.submit-dialog h2{margin:8px 0 10px}.submit-dialog p{line-height:1.8}.dialog-detail{font-size:13px;color:#667085}.submit-dialog button{color:#fff;border:0;border-radius:9px;padding:11px 24px;min-width:120px}
@media(max-width:700px){.site-header .mast{gap:12px}.ocm-logo{width:82px;height:82px}.mast-copy{min-width:0;flex:1}.gov{font-size:18px}.motto{font-size:14px}.brand{font-size:17px}.ornament{width:220px;height:12px}.sticky-progress{top:0}}

/* V3.4 — compact official header refinement */
.site-header{padding:7px 5%;border-bottom:3px solid #d7b846}
.site-header .mast{min-height:88px;gap:20px;justify-content:flex-start}
.ocm-logo{width:100px;height:100px}
.mast-copy{min-width:360px;flex:1;max-width:720px}
.gov{font-size:21px;line-height:1.28}
.motto{font-size:16px;line-height:1.28;margin:0}
.brand{font-size:18px;line-height:1.35}
.ornament{width:430px;height:14px;margin:1px 0}
@media(max-width:700px){.site-header{padding:6px 3%}.site-header .mast{min-height:70px;gap:10px}.ocm-logo{width:70px;height:70px}.mast-copy{min-width:0}.gov{font-size:16px}.motto{font-size:12px}.brand{font-size:14px}.ornament{width:230px;height:10px}}
/* V3.5 responsive modal, validation and autosave */
.save-state{position:fixed;right:16px;bottom:14px;z-index:40;background:#fff;border:1px solid #d9e0ea;border-radius:999px;padding:7px 12px;font-size:12px;color:#526071;box-shadow:0 2px 10px #17203318}
.smart-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.62);display:grid;place-items:center;padding:20px;backdrop-filter:blur(2px)}
.smart-modal{width:min(760px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px #0005;padding:28px;position:relative;color:#172033}
.smart-x{position:absolute;right:18px;top:14px;background:#eef2f7;color:#667085;border-radius:50%;width:42px;height:42px;padding:0;font-size:26px}.smart-top{display:flex;gap:18px;align-items:flex-start;padding-right:42px}.smart-icon{width:64px;height:64px;flex:0 0 64px;border-radius:50%;display:grid;place-items:center;font-size:34px;font-weight:800;background:#ffe6e6;color:#d92d20}.smart-modal.success .smart-icon{background:#e8f7ee;color:#16803b}.smart-top h2{margin:4px 0 6px;font-size:25px}.smart-top p{margin:0;line-height:1.8;color:#526071}.missing-list{margin-top:22px;padding:16px 18px;border:1px solid #f2cccc;background:#fff8f8;border-radius:12px;max-height:42vh;overflow:auto}.missing-list strong{font-size:17px}.missing-list ol{margin:12px 0 0;padding-left:26px}.missing-list li{padding:7px 4px;line-height:1.6}.missing-list li::marker{color:#d92d20;font-weight:700}.smart-actions{border-top:1px solid #e6eaf0;margin-top:22px;padding-top:18px;text-align:right}.smart-ok{min-width:130px;border-radius:10px}.q-missing{background:#fff8f8;border-left:4px solid #d92d20;padding-left:14px}.q-missing h3{color:#9f1c15}
@media(max-width:600px){.smart-backdrop{padding:10px}.smart-modal{width:100%;max-height:92vh;border-radius:15px;padding:20px 16px}.smart-top{gap:12px;padding-right:34px}.smart-icon{width:48px;height:48px;flex-basis:48px;font-size:26px}.smart-top h2{font-size:20px}.smart-x{width:36px;height:36px;right:12px;top:10px}.missing-list{padding:12px;max-height:45vh}.smart-actions .smart-ok{width:100%;min-height:48px}.save-state{left:10px;right:auto;bottom:10px;max-width:calc(100vw - 20px)}}


/* V3.6 — institutional header, green progress, standard footer, required free-text */
.site-header{padding:6px 4%;border-bottom:3px solid #d7b846}
.site-header .mast{max-width:1080px;min-height:94px;gap:12px;justify-content:center}
.ocm-logo{width:126px;height:126px;flex:0 0 126px}
.mast-copy{flex:0 1 590px;min-width:0;max-width:590px;align-items:center}
.gov{font-size:19px;line-height:1.25}
.motto{font-size:14px;line-height:1.25;margin:0}
.brand{font-size:16px;line-height:1.3}
.ornament{width:390px;height:12px;margin:2px 0}
.progress{height:11px;background:#e6ebea;border-radius:999px;overflow:hidden}
.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#9bd8ad 0%,#45ad68 52%,#157a3c 100%);border-radius:999px;transition:width .28s ease}
.site-footer{margin-top:42px;padding:0;border-top:3px solid #d7b846;background:linear-gradient(135deg,#17365d,#0d2949);color:#fff;text-align:center}
.footer-inner{max-width:1180px;margin:auto;padding:22px 16px;display:flex;flex-direction:column;align-items:center;gap:5px;line-height:1.65}
.footer-inner strong{font-size:15px}.footer-inner span{font-size:12px;color:#eef3f8}.footer-inner small{font-size:11px;color:#d9e2ec}
.q[data-type="text"][data-required="true"] h3::after{content:" *";color:#d92d20;font-weight:700}
@media(max-width:700px){.site-header{padding:5px 3%}.site-header .mast{min-height:76px;gap:7px;justify-content:center}.ocm-logo{width:86px;height:86px;flex-basis:86px}.mast-copy{flex:0 1 300px}.gov{font-size:14px}.motto{font-size:11px}.brand{font-size:12px}.ornament{width:230px;height:9px}.footer-inner{padding:18px 14px}.footer-inner strong{font-size:14px}.footer-inner span{font-size:11px}}

/* V3.6.1 — validation/autoscroll/header/footer refinement */
.site-header .mast{max-width:900px;justify-content:center;gap:10px}
.ocm-logo{width:112px;height:112px;flex:0 0 112px}
.mast-copy{min-width:0;flex:0 1 360px;align-items:center}
.gov{font-size:18px}.motto{font-size:14px}.brand{font-size:15px}
.site-footer{text-align:left}
.footer-inner{max-width:1180px;margin:auto;padding:16px;display:block;text-align:left;font-size:12px;line-height:1.7;color:#eef3f8}
@media(max-width:700px){.site-header .mast{gap:6px}.ocm-logo{width:82px;height:82px;flex-basis:82px}.mast-copy{flex-basis:270px}.gov{font-size:14px}.motto{font-size:11px}.brand{font-size:12px}.footer-inner{padding:14px 16px;text-align:left}}


/* V3.6.2 — left header + gold gradient progress */
.site-header .mast{max-width:1180px;margin:0 auto;justify-content:flex-start;gap:10px}
.mast-copy{align-items:flex-start;text-align:left}
.gov,.motto,.brand{text-align:left}
.progress span{background:linear-gradient(90deg,#f7df83 0%,#e8bd3f 45%,#c99516 72%,#9b6c08 100%)}
@media(max-width:700px){.site-header .mast{justify-content:flex-start;gap:6px}.mast-copy{align-items:flex-start}.gov,.motto,.brand{text-align:left}}

/* V3.6.3 — final validation, compact standard dialogs, proportional header/footer */
.site-header{padding:6px 4%;}
.site-header .mast{max-width:1180px;margin:0 auto;justify-content:flex-start;align-items:center;gap:12px;min-height:88px}
.ocm-logo{width:94px;height:94px;flex:0 0 94px;object-fit:contain}
.mast-copy{min-width:0;flex:0 1 auto;align-items:flex-start;justify-content:center}
.gov,.motto,.brand{text-align:left;white-space:normal}
.gov{font-size:16px;line-height:1.45}
.motto{font-size:12px;line-height:1.45;margin:0}
.brand{font-size:13px;line-height:1.45;margin-top:5px}
.progress span{background:linear-gradient(90deg,#f7df83 0%,#e8bd3f 45%,#c99516 72%,#9b6c08 100%)}
.submit-card{display:flex;justify-content:flex-end;align-items:center;min-height:92px}
.submit-main{min-width:150px;padding:12px 22px;border-radius:9px;font-weight:700}
.smart-backdrop{background:rgba(15,23,42,.58);backdrop-filter:blur(2px)}
.smart-modal{width:min(560px,calc(100vw - 32px));max-height:86vh;border-radius:16px;padding:22px 22px 18px;box-shadow:0 22px 60px rgba(15,23,42,.28);overflow:auto}
.smart-top{gap:14px;padding-right:38px;align-items:center}
.smart-icon{width:52px;height:52px;flex:0 0 52px;font-size:29px}
.smart-top h2{margin:0 0 4px;font-size:21px;line-height:1.5}
.smart-top p{margin:0;font-size:14px;line-height:1.7;color:#5d6878}
.smart-x{right:14px;top:13px;width:36px;height:36px;font-size:22px;background:#f0f3f7;color:#667085}
.missing-list{margin-top:16px;padding:12px 14px;border-radius:10px;max-height:34vh}
.missing-list strong{font-size:14px}.missing-list ol{margin:8px 0 0;padding-left:22px}.missing-list li{padding:5px 2px;font-size:13px}
.smart-actions{margin-top:16px;padding-top:14px}.smart-ok{min-width:120px;padding:10px 18px;border-radius:8px}
.site-footer{text-align:left}.footer-inner{padding:15px 16px 13px;line-height:1.7}.copyright{margin-top:4px;font-size:11px;color:#d9e2ec}
@media(max-width:700px){.site-header{padding:5px 3%}.site-header .mast{min-height:70px;gap:8px}.ocm-logo{width:72px;height:72px;flex-basis:72px}.gov{font-size:13px;line-height:1.4}.motto{font-size:10px;line-height:1.4}.brand{font-size:11px;line-height:1.4;margin-top:4px}.smart-modal{width:min(520px,calc(100vw - 20px));padding:18px 16px 14px;border-radius:14px}.smart-top{gap:11px;padding-right:34px}.smart-icon{width:44px;height:44px;flex-basis:44px;font-size:24px}.smart-top h2{font-size:18px}.smart-top p{font-size:13px}.smart-actions .smart-ok{width:100%;min-height:44px}.submit-card{justify-content:stretch}.submit-main{width:100%}.footer-inner{padding:13px 14px}.copyright{font-size:10px}}

/* V3.6.3.1 — Q6 leadership hotfix + compact dialog */
.q-note{margin:-8px 0 10px;color:#667085;font-size:13px;font-style:italic;line-height:1.6}
.smart-modal{width:min(560px,calc(100vw - 32px));padding:20px 22px 16px;border-radius:16px;overflow:auto}
.smart-top{gap:14px;padding-right:38px;align-items:center}
.smart-icon{width:52px;height:52px;flex:0 0 52px;font-size:29px}
.smart-top h2{margin:0 0 4px;font-size:21px;line-height:1.45}
.smart-top p{margin:0;font-size:14px;line-height:1.55}
.smart-x{right:14px;top:12px;width:38px;height:38px;font-size:22px}
.smart-actions{margin-top:14px;padding-top:12px}
.smart-ok{min-width:118px;padding:9px 18px;border-radius:9px}
.missing-list{margin-top:14px;padding:12px 14px;max-height:34vh}
@media(max-width:600px){.smart-modal{width:min(520px,calc(100vw - 20px));padding:16px 14px 12px}.smart-top{gap:10px}.smart-icon{width:44px;height:44px;flex-basis:44px;font-size:24px}.smart-top h2{font-size:18px}.smart-top p{font-size:13px}.smart-actions{margin-top:12px;padding-top:10px}.smart-actions .smart-ok{min-height:42px}}

/* V3.7 — responsive survey administration dashboard */
body:has(.dash-page){padding-bottom:84px}.dash-page{padding-bottom:10px}.dash-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:4px 0 20px}.dash-heading h1{margin:3px 0 2px;font-size:30px;color:#102b50}.dash-badge{font-size:11px;color:#725b11;background:#fff8dd;border:1px solid #ead58a;border-radius:999px;padding:8px 12px;white-space:nowrap}.dash-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.dash-kpi{background:#fff;border:1px solid #e3e8ef;border-radius:15px;padding:18px;display:flex;align-items:center;gap:14px;box-shadow:0 4px 18px #17365d0c}.dash-kpi .kpi-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:25px;font-weight:800}.dash-kpi small,.dash-kpi em{display:block;color:#667085;font-style:normal}.dash-kpi strong{display:block;font-size:31px;line-height:1.15;color:#102b50;margin:3px 0}.dash-kpi.target .kpi-icon{background:#e8f2ff;color:#2176d2}.dash-kpi.completed .kpi-icon{background:#e8f8ef;color:#199653}.dash-kpi.progress .kpi-icon{background:#fff2dd;color:#e59000}.dash-kpi.pending .kpi-icon{background:#ffebea;color:#e7473c}.dash-grid-main{display:grid;grid-template-columns:1.7fr .8fr;gap:16px;margin-top:16px}.dash-grid-secondary{display:grid;grid-template-columns:1.65fr .75fr;gap:16px}.dash-panel{margin:16px 0 0;padding:20px;border-radius:15px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-head h2{font-size:18px;color:#102b50;margin:0}.panel-head p{margin:3px 0 0}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px}.lg:before,.dot{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.done:before,.dot.done,.stackbar .done,.status-num.done,.activity-dot.done{background:#20a05a}.doing:before,.dot.doing,.stackbar .doing,.status-num.doing,.activity-dot.doing{background:#f3a000}.wait:before,.dot.wait,.stackbar .wait,.status-num.wait,.activity-dot.wait{background:#ef554b}.province-bars{display:flex;flex-direction:column;gap:14px}.prov-bar-row{display:grid;grid-template-columns:155px 1fr 55px;gap:12px;align-items:center}.prov-name{display:flex;flex-direction:column;min-width:0}.prov-name b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prov-name span{font-size:10px;color:#8a94a3}.stackbar{height:14px;background:#eef1f4;border-radius:999px;overflow:hidden;display:flex}.stackbar i{display:block;height:100%}.prov-pct{text-align:right;color:#102b50;font-size:12px}.overall-panel{display:flex;flex-direction:column}.donut{--d:calc(var(--done)*1%);--p:calc((var(--done) + var(--doing))*1%);width:190px;aspect-ratio:1;border-radius:50%;margin:4px auto 18px;background:conic-gradient(#20a05a 0 var(--d),#f3a000 var(--d) var(--p),#ef554b var(--p) 100%);display:grid;place-items:center}.donut:before{content:"";position:absolute}.donut>div{width:128px;aspect-ratio:1;background:#fff;border-radius:50%;display:grid;place-content:center;text-align:center}.donut strong{font-size:27px;color:#102b50}.donut span{font-size:11px;color:#667085}.overall-lines p{display:grid;grid-template-columns:18px 1fr auto;align-items:center;margin:10px 0;font-size:12px}.overall-lines b{color:#102b50}.table-scroll{overflow:auto}.dash-table th{font-size:11px;color:#667085;background:#f7f9fb;white-space:nowrap}.dash-table td{font-size:12px;white-space:nowrap}.status-num{display:inline-block;min-width:34px;text-align:center;padding:4px 8px;border-radius:999px;color:#fff}.code-grid{display:grid;grid-template-columns:.7fr 1.1fr 1fr 1.5fr 1.2fr;gap:10px;align-items:end}.code-grid label{font-size:11px;font-weight:700;color:#445166}.code-grid input,.code-grid select{display:block;width:100%;height:43px;margin:5px 0 0;padding:8px 10px;border:1px solid #ccd5e0;border-radius:9px;background:#fff}.generate-btn{grid-column:1/-1;justify-self:start;margin-top:3px;white-space:nowrap}.activity-list{max-height:330px;overflow:auto}.activity{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf0f4}.activity-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.activity b,.activity small{display:block}.activity b{font-size:12px}.activity small{font-size:10px;color:#7b8796;margin-top:2px}.empty{color:#8993a1;font-size:12px}.bottom-admin-nav{position:fixed;left:0;right:0;bottom:0;z-index:900;background:linear-gradient(90deg,#12365f,#0b294b);border-top:3px solid #c9a227;display:flex;justify-content:center;box-shadow:0 -8px 24px #102b5024;padding:0 12px}.bottom-admin-nav a{min-width:105px;min-height:68px;padding:8px 10px;color:#dbe7f5;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-left:1px solid #ffffff10}.bottom-admin-nav a:last-child{border-right:1px solid #ffffff10}.bottom-admin-nav a span{font-size:20px;line-height:1}.bottom-admin-nav a b{font-size:10px;font-weight:500;white-space:nowrap}.bottom-admin-nav a:hover,.bottom-admin-nav a.active{background:#ffffff12;color:#f1d16a}.site-footer:has(+*){}body:has(.dash-page) .site-footer{margin-bottom:0}
@media(max-width:900px){.dash-kpis{grid-template-columns:1fr 1fr}.dash-grid-main,.dash-grid-secondary{grid-template-columns:1fr}.code-grid{grid-template-columns:1fr 1fr}.generate-btn{grid-column:1/-1}.bottom-admin-nav{justify-content:flex-start;overflow-x:auto}.bottom-admin-nav a{min-width:96px}.dash-badge{display:none}}
@media(max-width:560px){body:has(.dash-page){padding-bottom:72px}.dash-heading{align-items:flex-start}.dash-heading h1{font-size:23px}.dash-kpis{grid-template-columns:1fr 1fr;gap:9px}.dash-kpi{padding:12px;gap:9px}.dash-kpi .kpi-icon{width:38px;height:38px;font-size:20px}.dash-kpi strong{font-size:24px}.dash-kpi small{font-size:10px}.dash-panel{padding:15px}.panel-head{display:block}.legend{margin-top:10px}.prov-bar-row{grid-template-columns:100px 1fr 45px;gap:7px}.code-grid{grid-template-columns:1fr}.generate-btn{width:100%}.donut{width:165px}.bottom-admin-nav a{min-width:84px;min-height:60px}.bottom-admin-nav a b{font-size:9px}}
/* V3.7.1 — dashboard standards, Khmer-first hierarchy, filters, quality panel */
.dash-heading h1{font-size:30px;margin:0;color:#102b50}.dash-heading p{font-size:15px;color:#53657a;margin:3px 0}.dash-heading small{font-size:11px;color:#8792a2}.dash-badge.ok{color:#167846;background:#eaf8f0;border-color:#b9e4ca}.dash-badge.bad{color:#a12b24;background:#fff0ef;border-color:#f1c1bd}.dash-kpi{min-height:145px}.dash-kpi h3{font-size:16px;margin:0;color:#17365d}.dash-kpi small{font-size:10px}.dash-kpi em{font-size:10px}.dash-kpi strong{font-size:34px}.panel-head h2{font-size:18px}.panel-head p{font-size:10px;color:#7a8797;margin-top:2px}.dash-tools{display:grid;grid-template-columns:minmax(220px,1fr) 220px auto;gap:10px;align-items:center;margin:-3px 0 14px}.dash-tools input,.dash-tools select{height:40px;border:1px solid #d5dde7;border-radius:9px;background:#fff;padding:7px 10px}.dash-tools span{font-size:10px;color:#7c8795}.dash-table th{cursor:pointer;user-select:none}.dash-table th:hover{background:#eef4fa;color:#17365d}.dash-table th small{font-size:9px;font-weight:500;color:#8792a2}.quality-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quality{border:1px solid #e1e7ee;border-radius:12px;padding:13px;display:flex;gap:10px;align-items:center}.quality>b{width:36px;height:36px;border-radius:10px;display:grid;place-items:center}.quality.good>b{background:#e7f7ee;color:#16834a}.quality.alert>b{background:#fff0e2;color:#c56b00}.quality span{font-size:12px;font-weight:700;color:#203b5e}.quality small{display:block;font-size:9px;font-weight:400;color:#7b8795;margin-top:2px}.bottom-admin-nav a b{font-size:11px;font-weight:700}.bottom-admin-nav a small{font-size:8px;color:#9fb3ca}.bottom-admin-nav a.active small{color:#e9cf72}.smart-x{display:none!important}.smart-top{padding-right:0!important}
@media(max-width:900px){.dash-tools{grid-template-columns:1fr 1fr}.dash-tools span{grid-column:1/-1}.quality-grid{grid-template-columns:1fr}.dash-kpi{min-height:130px}}
@media(max-width:560px){.dash-heading h1{font-size:23px}.dash-kpi{min-height:118px}.dash-kpi h3{font-size:13px}.dash-kpi strong{font-size:26px}.dash-tools{grid-template-columns:1fr}.dash-tools span{grid-column:auto}.bottom-admin-nav a b{font-size:10px}.bottom-admin-nav a small{font-size:7px}}
/* V3.8 Admin architecture */
body:has(.admin-shell){padding-bottom:0}.mast-wrap{width:min(1180px,94%);margin:auto;display:flex;align-items:center;gap:28px}.mast{color:inherit;text-decoration:none;cursor:pointer}.admin-header .mast{flex:0 0 auto}.top-admin-menu{display:flex;align-self:stretch;margin-left:18px}.top-admin-menu a{display:flex;align-items:center;padding:0 17px;color:#dfe9f5;text-decoration:none;font-size:12px;border-bottom:3px solid transparent}.top-admin-menu a:hover{color:#f3d36b;border-bottom-color:#d4ad32;background:#ffffff08}.admin-meta{margin-left:auto;display:flex;align-items:center;gap:18px;color:#fff}.current-date{text-align:right;font-size:11px;font-weight:700;line-height:1.4}.current-date small{display:block;color:#9fb4cc;font-size:8px;font-weight:400}.admin-profile{display:flex;align-items:center;gap:8px;border-left:1px solid #ffffff20;padding-left:16px}.admin-profile b,.admin-profile small{display:block}.admin-profile b{font-size:11px}.admin-profile small{font-size:8px;color:#a8bdd3}.avatar{width:34px;height:34px;border-radius:50%;background:#e9eef4;color:#17365d;display:grid;place-items:center;font-weight:800}.profile-actions{display:flex;align-items:center;gap:8px;margin-left:5px}.profile-actions a{color:#e8eef6;text-decoration:none;font-size:9px}.settings-icon{font-size:18px!important}.admin-shell{max-width:1180px}.admin-hero{margin:18px 0 8px;background:linear-gradient(115deg,#123c70,#0c2b50);border-radius:16px;padding:22px 26px;color:#fff;display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #d4ad32;box-shadow:0 10px 30px #12365f16}.admin-hero h1{font-size:25px;margin:0}.admin-hero p{font-size:13px;margin:3px 0;color:#cbd9e8}.admin-hero small{font-size:10px;color:#9fb4ca}.system-pill{background:#e7f7ee;color:#177647;border-radius:999px;padding:9px 13px;font-size:10px}.system-pill small{color:#4c8768;margin-left:4px}.province-visual-grid{display:grid;grid-template-columns:1.05fr 1.2fr;gap:18px}.province-map-schematic{min-height:420px;border-radius:14px;background:linear-gradient(145deg,#f4f8fb,#eaf1f6);padding:22px;display:grid;grid-template-columns:repeat(5,1fr);gap:7px;align-content:center;position:relative}.map-province{min-height:58px;border:0;border-radius:12px;color:#fff;font-family:inherit;font-size:10px;padding:7px;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff70,0 2px 5px #17365d18}.map-province.done{background:#23a260}.map-province.doing{background:#f1a009}.map-province.wait{background:#e95049}.map-province:hover{transform:translateY(-2px);outline:3px solid #1c73c7;z-index:2}.map-tip{position:absolute;right:16px;top:16px;width:205px;background:#fff;border-radius:12px;padding:13px;box-shadow:0 12px 30px #17365d33;color:#17365d;z-index:10}.map-tip b,.map-tip span,.map-tip small{display:block;margin:3px 0}.map-tip .green{color:#16834a}.map-tip .orange{color:#c77900}.map-tip .red{color:#c83b34}.lg.none:before{background:#aeb7c2}.access-layout{display:grid;gap:16px}.access-form{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;align-items:end}.access-form label{font-size:11px;font-weight:700;color:#445166}.access-form input,.access-form select{display:block;width:100%;height:44px;margin-top:6px;border:1px solid #ccd5e0;border-radius:9px;padding:8px 10px;background:#fff}.access-form .checkline{grid-column:1/-1;display:flex;align-items:center;gap:8px}.access-form .checkline input{width:auto;height:auto;margin:0}.status-chip{display:inline-block;padding:4px 8px;border-radius:999px;font-size:9px}.status-chip.active{background:#e7f7ee;color:#177647}.status-chip.soon{background:#fff4df;color:#a96300}.status-chip.expired{background:#ffebea;color:#b8342e}.generated-one{margin:20px 0;background:#f4f8fc;border:1px dashed #9eb4cc;border-radius:12px;padding:18px}.generated-one strong{display:block;font-size:30px;letter-spacing:4px;color:#12365f}.saved-card{max-width:700px;margin:30px auto!important}.backend-card{margin-bottom:20px}.json-editor{width:100%;min-height:560px;resize:vertical;border:1px solid #cbd5df;border-radius:12px;background:#0f1e2d;color:#dce8f4;padding:16px;font:12px/1.55 Consolas,monospace}.backend-note{display:flex;gap:12px;background:#fff8df;border:1px solid #ead38a;padding:12px;border-radius:10px;margin-bottom:12px}.backend-note span{font-size:11px;color:#6b6250}.backend-actions{display:flex;gap:10px;margin-top:12px}.settings-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:16px}.notice{background:#eaf5ff;border:1px solid #b8d8f2;padding:10px;border-radius:8px;color:#215d8f}
@media(max-width:900px){.mast-wrap{flex-wrap:wrap;padding-bottom:8px}.top-admin-menu{order:3;width:100%;margin:0;justify-content:center;border-top:1px solid #ffffff18}.admin-meta{margin-left:auto}.province-visual-grid,.settings-grid{grid-template-columns:1fr}.access-form{grid-template-columns:1fr 1fr}.province-map-schematic{min-height:340px}.admin-hero{align-items:flex-start}.system-pill{display:none}}
@media(max-width:600px){.admin-meta{width:100%;justify-content:space-between}.current-date{text-align:left}.top-admin-menu a{padding:10px 12px}.admin-hero h1{font-size:20px}.province-map-schematic{grid-template-columns:repeat(3,1fr);padding:12px}.map-province{min-height:50px}.access-form{grid-template-columns:1fr}.dash-kpis{grid-template-columns:1fr 1fr}.profile-actions a:last-child{font-size:0}.profile-actions a:last-child:after{content:'↪';font-size:17px}}
/* V3.9 Dashboard Control */
.nav-drop{position:relative;display:flex}.nav-sub{display:none;position:absolute;top:100%;left:0;min-width:170px;background:#0d3159;z-index:999;border-bottom:3px solid #d4ad32;box-shadow:0 8px 20px #0003}.nav-drop:hover .nav-sub{display:block}.nav-sub a{display:block!important;padding:11px 15px!important;border-bottom:1px solid #ffffff14!important}.mode-switch{display:flex;background:#082644;border-radius:10px;padding:4px}.mode-switch a{color:#bcd0e3;text-decoration:none;padding:8px 14px;border-radius:7px;font-size:10px;font-weight:800}.mode-switch a.active{background:#fff;color:#17365d}.mode-switch a.test{background:#fff0c8;color:#9a6200}.test-banner,.hidden-live{margin:12px 0;padding:11px 15px;border-radius:10px;background:#fff2c8;border:1px solid #e6c65d;color:#805800;font-weight:700}.sub-select{margin:10px 0;padding:12px 18px}.sub-select select{min-width:240px;margin-left:12px;padding:8px;border:1px solid #ccd5e0;border-radius:8px}.real-map{height:470px;position:relative;border-radius:14px;background:linear-gradient(145deg,#f5f9fc,#e9f1f6);overflow:hidden}.real-map svg{width:100%;height:100%;display:block}.map-loading{position:absolute;inset:0;display:grid;place-items:center;color:#75869a;font-size:12px}.geo-province{stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke;transition:.15s}.geo-province.done{fill:#24a461}.geo-province.doing{fill:#f1a20a}.geo-province.wait{fill:#e9514a}.geo-province.none{fill:#fff;stroke:#aeb8c3}.geo-province:hover{stroke:#145fa5;stroke-width:3;filter:brightness(.97)}.map-bottom{display:flex;align-items:center;gap:14px;padding:10px 4px}.target-option{position:relative}.target-option summary{list-style:none;cursor:pointer;width:34px;height:34px;border:1px solid #ccd5e0;border-radius:8px;display:grid;place-items:center;background:#fff}.target-option form{position:absolute;left:0;bottom:42px;width:330px;background:#fff;padding:14px;border-radius:12px;box-shadow:0 12px 32px #17365d33;z-index:50}.target-list{display:grid;grid-template-columns:1fr 1fr;max-height:300px;overflow:auto;gap:6px}.target-list label{font-size:10px}.legend.compact{margin:0}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.action-grid form,.test-add{border:1px solid #e0e6ed;border-radius:12px;padding:15px}.action-grid p{font-size:11px;color:#667587}.action-grid button,.backup-list button,.test-add button,.danger-zone button{border:0;border-radius:8px;background:#123b6c;color:#fff;padding:9px 13px;cursor:pointer}.backup-list{display:grid;gap:8px}.backup-list form{display:flex;align-items:center;gap:10px;border-bottom:1px solid #edf0f4;padding:8px 0}.backup-list code{flex:1;font-size:10px}.backup-list input{padding:7px;border:1px solid #ccd5e0;border-radius:7px}.test-add{display:grid;grid-template-columns:1.3fr 1fr .6fr auto;gap:10px;align-items:end}.test-add label{font-size:10px}.test-add select,.test-add input{display:block;width:100%;margin-top:5px;padding:9px;border:1px solid #ccd5e0;border-radius:8px}.danger-zone{margin-top:18px;padding-top:14px;border-top:1px solid #ead3d1}.danger-zone input{padding:8px;border:1px solid #d9b7b4;border-radius:7px}@media(max-width:900px){.action-grid,.test-add{grid-template-columns:1fr}.real-map{height:390px}}@media(max-width:600px){.target-option form{width:280px}.target-list{grid-template-columns:1fr}.real-map{height:330px}}
/* V3.10 Dashboard + Reports */
.current-date{font-size:12px!important}.current-date small{display:none!important}.summary-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:14px 0}.summary-kpis article{background:#fff;border:1px solid #dfe6ee;border-radius:12px;padding:12px;display:flex;gap:10px;align-items:center;box-shadow:0 4px 14px #17365d0b}.summary-kpis b{font-size:24px;color:#17365d}.summary-kpis span{font-size:10px;font-weight:700}.summary-kpis small{display:block;font-size:8px;color:#7b8b9c}.summary-kpis .green b{color:#20a05d}.summary-kpis .orange b{color:#ed9b00}.summary-kpis .red b{color:#e84d49}.summary-kpis .gray b{color:#9aa6b3}.summary-kpis .purple b{color:#7c3fb3}.status-dot{display:inline-block;width:11px;height:11px;border-radius:50%}.status-dot.done{background:#24a461}.status-dot.doing{background:#f1a20a}.status-dot.wait{background:#e9514a}.status-dot.none{background:#aeb8c3}.row-highlight{background:#eaf4ff!important;outline:2px solid #2d78bd}.dashboard-lower{display:grid;grid-template-columns:1fr 1.2fr 1.2fr;gap:14px;margin-top:14px}.progress-layout{display:flex;align-items:center;gap:22px}.progress-ring{--p:0;width:110px;height:110px;border-radius:50%;background:conic-gradient(#24a461 calc(var(--p)*1%),#e9eef3 0);display:grid;place-items:center;position:relative}.progress-ring:after{content:'';position:absolute;width:78px;height:78px;background:white;border-radius:50%}.progress-ring b,.progress-ring small{z-index:1;position:absolute}.progress-ring b{font-size:22px}.progress-ring small{margin-top:35px;font-size:8px}.progress-list,.attention-list,.recent-list{display:grid;gap:8px;flex:1}.progress-list span,.attention-list span,.recent-list span{display:flex;justify-content:space-between;border-bottom:1px solid #edf1f5;padding:6px;font-size:10px}.recent-list small{color:#7d8b9b}.row-action{position:relative}.row-action summary{list-style:none;width:28px;height:28px;border-radius:8px;background:#eaf4ff;display:grid;place-items:center;cursor:pointer;font-size:18px}.row-action div{position:absolute;right:0;top:32px;background:#fff;border:1px solid #dce4ed;border-radius:9px;box-shadow:0 8px 22px #17365d22;z-index:20;min-width:110px;overflow:hidden}.row-action a,.row-action button{display:block;width:100%;border:0;background:white;padding:9px 12px;text-align:left;text-decoration:none;color:#17365d;font:inherit;cursor:pointer}.row-action button{color:#c93434}.cancel-edit{align-self:center;text-decoration:none;color:#63758a;font-size:11px}.modal-backdrop{position:fixed;inset:0;background:#0b1f36aa;z-index:9999;display:grid;place-items:center}.modal-backdrop[hidden]{display:none}.confirm-modal{width:min(420px,90vw);background:#fff;border-radius:16px;padding:26px;text-align:center;box-shadow:0 20px 60px #0005}.modal-icon{font-size:34px}.confirm-modal p{color:#667587;font-size:12px}.modal-actions{display:flex;justify-content:center;gap:10px;margin-top:20px}.modal-actions button{border:1px solid #cfd8e2;background:#fff;border-radius:8px;padding:9px 18px}.modal-actions .danger{background:#e53e3e;color:white;border-color:#e53e3e}.report-controls form{display:grid;grid-template-columns:1.3fr 1.3fr auto;gap:12px;align-items:end}.report-controls label{font-size:11px;font-weight:700}.report-controls select{display:block;width:100%;padding:10px;margin-top:5px;border:1px solid #ccd6e0;border-radius:8px}.report-downloads{display:flex;gap:8px}.report-downloads a{padding:9px 12px;border-radius:8px;text-decoration:none;background:#173b68;color:white;font-size:10px}.report-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}.report-kpis span{padding:10px;border:1px solid #e0e6ed;border-radius:8px;font-size:10px}.report-kpis b{display:block;font-size:20px;margin-top:3px}@media(max-width:900px){.summary-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-lower{grid-template-columns:1fr}.report-controls form{grid-template-columns:1fr}.report-kpis{grid-template-columns:repeat(2,1fr)}}
/* V3.11 refinements */
.summary-kpis{grid-template-columns:repeat(5,1fr)!important}.summary-kpis article b{font-size:34px!important}.location-kpi i{font-style:normal;font-size:25px;margin-right:6px}.dashboard-lower{grid-template-columns:1fr 1fr!important}.dashboard-lower>section:first-child{grid-column:1/-1}.sortable th[data-sort]{cursor:pointer;user-select:none}.table-pagination{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 0}.table-pagination button,.table-pagination select{border:1px solid #ccd5e0;background:#fff;border-radius:7px;padding:6px 10px}.reports-workspace{display:grid;grid-template-columns:245px 1fr;gap:18px}.report-sidebar{padding:18px;height:max-content}.stack-form{display:grid;gap:12px}.stack-form label{font-size:11px;font-weight:700}.stack-form input,.stack-form select{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #ccd5e0;border-radius:8px}.official-report{padding:24px}.report-official-head{display:grid;grid-template-columns:65px 1fr auto;gap:14px;align-items:center;border-bottom:2px solid #173b68;padding-bottom:14px}.report-official-head img{width:58px}.report-official-head h2{margin:3px 0}.report-downloads{display:flex;gap:7px}.report-downloads a,.report-downloads button,.dm-action .generate-btn{padding:8px 10px;border:1px solid #ccd5e0;border-radius:7px;background:#fff;text-decoration:none;color:#173b68;font:inherit}.question-report article{padding:18px 0;border-bottom:1px solid #e3e9ef}.q-report-head{display:flex;justify-content:space-between;gap:10px}.qtype-badge{background:#e8f1fb;color:#155b9c;border-radius:999px;padding:5px 9px;font-size:9px;height:max-content}.muted{color:#6d7b8c;font-size:11px}.dm-action{border:1px solid #e0e6ed;border-radius:12px;padding:15px}.inline-action{display:inline}.inline-action button{border:1px solid #ccd5e0;background:#fff;border-radius:6px;padding:5px 8px}.inline-action .danger{color:#b53030}.footer-inner{display:grid!important;grid-template-columns:1fr auto auto;gap:20px}.footer-date{font-weight:700}.target-list{max-height:none!important;overflow:visible!important}.table-scroll{overflow:visible!important}@media(max-width:900px){.reports-workspace{grid-template-columns:1fr}.summary-kpis{grid-template-columns:repeat(2,1fr)!important}.footer-inner{grid-template-columns:1fr}.report-official-head{grid-template-columns:50px 1fr}.report-downloads{grid-column:1/-1}}

/* V3.12 dashboard refinement */
.province-label{font-family:"Noto Sans Khmer",sans-serif;font-size:10px;font-weight:800;fill:#17365d;pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.province-visual-grid{align-items:start}
.dashboard-lower{grid-template-columns:1fr 1fr!important}
.dashboard-lower>.overall-progress-card{grid-column:1/2!important}
.progress-ring{width:132px;height:132px}.progress-ring:after{width:92px;height:92px}
.footer-inner{grid-template-columns:1fr auto!important;align-items:center}.footer-left{line-height:1.65}.footer-date{white-space:nowrap}
.confirm-modal{position:relative;width:min(520px,92vw);border-radius:20px;padding:34px 42px}.confirm-modal .modal-icon{width:84px;height:84px;border-radius:50%;background:#fff0f0;color:#e53e3e;display:grid;place-items:center;margin:0 auto 12px;font-size:40px}.confirm-modal h2{font-size:27px;margin:10px 0}.confirm-modal p{font-size:14px;line-height:1.8}.modal-close{position:absolute;right:22px;top:20px;width:38px;height:38px;border:0!important;border-radius:50%!important;background:#eef4fb!important;font-size:26px;color:#61758a}.modal-actions button{min-width:150px;padding:13px 22px!important;font-size:15px;font-weight:800}.modal-actions .danger{background:#e93f3f!important}.report-official-head{grid-template-columns:1fr auto!important}.report-official-head>div:first-of-type{grid-column:1}
@media(max-width:900px){.dashboard-lower>.overall-progress-card{grid-column:1/-1!important}.province-label{font-size:8px}.footer-date{white-space:normal}}

/* V3.13 dashboard standard refinement */
.summary-kpis.kpi-standard{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0 18px}.kpi-card{min-height:132px!important;padding:18px!important;border-radius:16px!important;align-items:flex-start!important;gap:14px!important}.kpi-svg{width:54px;height:54px;flex:0 0 54px;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:900}.kpi-body{flex:1;min-width:0}.kpi-title{font-size:12px!important;color:#17365d}.kpi-title small{font-size:9px!important;margin-top:2px}.kpi-metric{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin:8px 0 7px}.kpi-metric b{font-size:36px!important;line-height:1!important}.kpi-metric strong{font-size:13px}.kpi-bar{height:9px;background:#e8edf2;border-radius:999px;overflow:hidden}.kpi-bar i{display:block;height:100%;border-radius:inherit;max-width:100%}.kpi-target{background:#f6fbff!important}.kpi-target .kpi-svg{background:#dceeff;color:#1874d1}.kpi-target .kpi-bar i{background:#1682ee}.kpi-target .kpi-metric strong{color:#1682ee}.kpi-completed{background:#f5fcf8!important}.kpi-completed .kpi-svg{background:#daf5e5;color:#19a45b}.kpi-completed .kpi-bar i{background:#20ad63}.kpi-completed .kpi-metric strong{color:#20ad63}.kpi-progress{background:#fffaf1!important}.kpi-progress .kpi-svg{background:#ffedc7;color:#ed9900}.kpi-progress .kpi-bar i{background:#f3a000}.kpi-progress .kpi-metric strong{color:#e59000}.kpi-notstarted{background:#fff7f6!important}.kpi-notstarted .kpi-svg{background:#ffe1df;color:#e94c47}.kpi-notstarted .kpi-bar i{background:#ef554b}.kpi-notstarted .kpi-metric strong{color:#e94c47}.kpi-notsurveyed{background:#f8f9fb!important}.kpi-notsurveyed .kpi-svg{background:#e8edf2;color:#8c9baa}.kpi-notsurveyed .kpi-bar i{background:#9ba8b5}.kpi-notsurveyed .kpi-metric strong{color:#82909e}
.location-svg{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e7f2ff;vertical-align:middle;margin-right:5px}.location-svg svg{width:18px;height:18px;fill:#1877d2}.province-map-card{overflow:hidden}.province-visual-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1.2fr);align-items:start}.real-map{height:500px}.dash-table tbody tr{height:42px}.province-pagination{min-height:48px;display:flex;align-items:center;justify-content:flex-end;gap:14px;border-top:1px solid #e6ebf0;padding:8px 2px;color:#718096;font-size:11px}.province-pagination #pageButtons{display:flex;gap:5px}.province-pagination button{width:32px;height:32px;border:1px solid #d6dee7;border-radius:8px;background:#fff;color:#17365d;cursor:pointer}.province-pagination button.active{background:#173b68;color:#fff;border-color:#173b68}.province-pagination button:disabled{opacity:.4;cursor:default}.footer-inner{min-height:78px;padding:14px 18px!important}.footer-left>div:first-child{font-size:12px;font-weight:600}.footer-copy{font-size:10px;color:#dce6f0;margin-top:4px}.footer-date{font-size:12px!important}
@media(max-width:1000px){.summary-kpis.kpi-standard{grid-template-columns:repeat(2,1fr)}.kpi-card{min-height:118px!important}.province-visual-grid{grid-template-columns:1fr}.real-map{height:440px}}@media(max-width:600px){.summary-kpis.kpi-standard{grid-template-columns:1fr}.real-map{height:350px}.kpi-card{min-height:108px!important}.footer-inner{grid-template-columns:1fr!important;gap:8px!important}.footer-date{text-align:left}}
\n\n/* V3.14 — screenshot refinements: larger KPI icons, compact footer, approved delete confirmation */
.summary-kpis.kpi-standard{gap:14px!important}
.kpi-card{min-height:150px!important;padding:20px 20px!important;gap:16px!important;align-items:center!important}
.kpi-svg{width:68px!important;height:68px!important;flex:0 0 68px!important;font-size:36px!important}
.kpi-svg svg{width:34px!important;height:34px!important}
.kpi-title{font-size:13px!important;line-height:1.45}
.kpi-title small{font-size:10px!important}
.kpi-metric{margin:10px 0 9px!important}
.kpi-metric b{font-size:40px!important}
.kpi-metric strong{font-size:14px!important}
.kpi-bar{height:10px!important}

/* Compact government footer: keep both left lines + live Khmer date */
.site-footer{min-height:0!important}
.footer-inner{min-height:0!important;padding:8px 18px 7px!important;gap:16px!important;line-height:1.35!important}
.footer-left{line-height:1.35!important}
.footer-left>div:first-child{font-size:11px!important;line-height:1.35!important}
.footer-copy{font-size:9px!important;margin-top:2px!important;line-height:1.3!important}
.footer-date{font-size:10px!important;line-height:1.3!important}

/* Approved Access Code delete dialog */
.confirm-modal{width:min(500px,92vw)!important;border-radius:20px!important;padding:32px 38px 30px!important}
.confirm-modal .modal-icon{width:76px!important;height:76px!important;margin:0 auto 14px!important;font-size:36px!important;background:#fff0f0!important;color:#e53e3e!important}
.confirm-modal h2{font-size:25px!important;margin:8px 0!important}
.confirm-modal p{font-size:14px!important;line-height:1.7!important;margin:8px auto 20px!important;max-width:390px}
.modal-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;margin-top:18px!important}
.modal-actions button{width:100%!important;min-width:0!important;min-height:48px!important;border-radius:10px!important;font-size:15px!important;font-weight:800!important}
.modal-actions button:first-child{background:#fff!important;color:#17365d!important;border:1px solid #cfd8e2!important}
.modal-actions .danger{background:#e93f3f!important;color:#fff!important;border-color:#e93f3f!important}
.modal-close{display:none!important}
@media(max-width:700px){.kpi-card{min-height:126px!important;padding:16px!important}.kpi-svg{width:58px!important;height:58px!important;flex-basis:58px!important;font-size:31px!important}.footer-inner{padding:7px 14px!important}.confirm-modal{padding:26px 20px 22px!important}.modal-actions{grid-template-columns:1fr 1fr!important}}

/* V3.15 — Access-Code province guard + completed demographics */
.demographic-panel{margin:16px 0}.demographic-groups{display:grid;gap:16px}.demographic-group h3{margin:0 0 9px;color:#17365d;font-size:13px}.demographic-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.demographic-card{border:1px solid #dce4ed;border-radius:12px;padding:14px 15px;background:#fff;min-height:112px;display:flex;flex-direction:column;justify-content:center}.demographic-card span{font-size:11px;color:#45566b;line-height:1.55;min-height:34px}.demographic-card b{font-size:28px;color:#17365d;line-height:1.15}.demographic-card small{font-size:9px;color:#738398}.demo-bar{height:6px;background:#edf1f5;border-radius:99px;overflow:hidden;margin-top:8px}.demo-bar i{display:block;height:100%;background:#2f78b7;border-radius:99px}.q[data-qid="1"] select option:disabled{color:#a7afb8;background:#f1f3f5}@media(max-width:800px){.demographic-cards{grid-template-columns:1fr}.demographic-card{min-height:92px}}


/* V3.16 — Dashboard/Public Header refinement */
.summary-kpis.kpi-standard .kpi-card{display:block!important}
.summary-kpis.kpi-standard .kpi-body{width:100%!important}
.summary-kpis.kpi-standard .kpi-metric b{font-size:54px!important;line-height:.95!important;letter-spacing:-1px}
.summary-kpis.kpi-standard .kpi-title{font-size:13px!important}
.summary-kpis.kpi-standard .kpi-title small{font-size:10px!important}
.summary-kpis.kpi-standard .kpi-metric{margin-top:14px!important}
.demographic-list-panel{grid-column:1/-1!important}
.demographic-list-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.demographic-list-group{border:1px solid #e1e7ee;border-radius:13px;overflow:hidden;background:#fff}
.demographic-list-group h3{margin:0;padding:12px 14px;background:#f6f9fc;color:#17365d;font-size:13px;border-bottom:1px solid #e1e7ee}
.demographic-list{display:flex;flex-direction:column}
.demographic-list-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 70px;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid #edf1f5;font-size:12px}
.demographic-list-row:last-child{border-bottom:0}
.demographic-list-row span{color:#34445a}
.demographic-list-row b{text-align:right;color:#102b50;font-size:18px}
.demographic-list-row strong{text-align:right;color:#2176d2;font-size:12px}
@media(max-width:800px){.demographic-list-groups{grid-template-columns:1fr}.summary-kpis.kpi-standard .kpi-metric b{font-size:46px!important}}
/* V3.17 */
.kpi-title{font-size:20px!important;font-weight:800}.kpi-title small{font-size:11px!important}.kpi-metric b{font-size:48px!important}.code-mini{display:flex;gap:16px;margin-top:8px;font-size:12px}.code-mini b{font-size:16px}.attention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.attention-grid>span{display:flex;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.demographic-list-row{grid-template-columns:1fr auto!important;min-height:32px!important;padding:5px 10px!important}.demographic-list-group{padding:10px!important}.dashboard-mode{display:flex;gap:7px}.dashboard-mode a{padding:8px 12px;border-radius:8px;text-decoration:none;background:#fff;color:#173b68;font-weight:700}.dashboard-mode a.active{background:#173b68;color:#fff}.scope-filter{margin:12px 0;padding:12px}.scope-list{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:8px 0;font-size:12px}.testing-badge{display:inline-block;padding:2px 6px;border-radius:999px;background:#fff3cd;color:#7a4d00;font-size:9px;font-weight:800}.recycle-card{margin:16px auto;max-width:1500px;overflow:auto}.recycle-card table{width:100%;border-collapse:collapse}.recycle-card th,.recycle-card td{padding:8px;border-bottom:1px solid #e5e7eb}.user-edit-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;margin:7px 0}.confirm-modal input{width:100%;margin-top:7px}.confirm-modal button:disabled{opacity:.45;cursor:not-allowed}
.login-page{min-height:calc(100vh - 185px);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:34px 20px 22px;overflow:hidden;background:linear-gradient(180deg,#f8fbff,#eef5fb)}.login-buildings{position:absolute;inset:0;pointer-events:none;opacity:.38}.login-buildings span{position:absolute;top:0;bottom:0;width:42%;background-size:cover;background-position:center}.building-left{left:0;background-image:linear-gradient(90deg,rgba(248,251,255,.08),rgba(248,251,255,1)),url('/static/assets/login-building-left.png')}.building-right{right:0;background-image:linear-gradient(270deg,rgba(248,251,255,.08),rgba(248,251,255,1)),url('/static/assets/login-building-right.png')}.login-card{position:relative;z-index:2;width:min(420px,92vw);padding:28px 32px;background:rgba(255,255,255,.97);border:1px solid #dbe5ef;border-radius:18px;box-shadow:0 18px 55px rgba(15,45,78,.16);text-align:center}.login-card h1{margin:5px 0 2px;color:#173b68}.login-card>p{margin:0 0 20px;color:#6b7280}.login-lock{font-size:30px}.login-card label{text-align:left;display:block;margin:12px 0;font-weight:700;color:#253b56}.login-card label small{float:right;color:#8290a2;font-weight:500}.login-card input{box-sizing:border-box;width:100%;padding:12px 13px;margin-top:6px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc}.password-wrap{position:relative}.password-wrap .eye{position:absolute;right:5px;top:10px;background:transparent;color:#52677e;padding:7px;border:0}.login-btn{width:100%;padding:12px;margin-top:8px;border-radius:9px;background:#173b68;font-weight:800}.login-quote{position:relative;z-index:2;margin-top:22px;text-align:center;color:#26496d;font-weight:700;line-height:1.9;font-size:14px}.login-footer .footer-inner{padding:12px 24px!important}.footer-office,.footer-secretariat{display:flex;flex-direction:column;gap:2px;font-size:11px}.footer-secretariat{text-align:right}.login-footer b{font-size:13px}.site-header:not(.admin-header) .mast-wrap{position:relative}.site-header:not(.admin-header) .mast{margin:auto}.site-header:not(.admin-header) .mast-copy{text-align:center}
@media(max-width:800px){.attention-grid{grid-template-columns:1fr}.scope-list{grid-template-columns:repeat(2,1fr)}.login-buildings span{width:55%;opacity:.5}.login-quote{font-size:12px}.login-footer .footer-inner{flex-direction:column;gap:8px}.footer-secretariat{text-align:left}.user-edit-row{grid-template-columns:1fr}}


/* V3.19 — Clean dashboard controls, KPI colors, standard quality cards and dialogs */
.dashboard-hero-clean{min-height:112px!important}.dashboard-title-wrap{width:100%}.title-line{display:flex;align-items:center;gap:10px}.title-line h1{margin:0}.dashboard-settings,.custom-settings{position:relative}.dash-settings-btn,.custom-btn{background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;border-radius:10px!important;padding:8px 11px!important}.dash-settings-menu,.custom-menu{display:none;position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:245px;background:#fff;border:1px solid #dce5ee;border-radius:12px;box-shadow:0 18px 45px rgba(13,43,77,.18);padding:7px}.dashboard-settings.open .dash-settings-menu,.custom-settings.open .custom-menu{display:block}.dash-settings-menu a{display:block;padding:10px 12px;border-radius:8px;color:#173b68;text-decoration:none;font-weight:800}.dash-settings-menu a small{display:block;color:#8090a2;font-weight:500;margin-top:2px}.dash-settings-menu a.selected,.dash-settings-menu a:hover{background:#eef5fc}.custom-menu{width:300px;padding:14px}.custom-menu label{display:block;color:#173b68;font-weight:800;margin-bottom:8px}.custom-menu label small{display:block;color:#8290a2;font-weight:500}.custom-menu select{width:100%;border:1px solid #d8e2ec;border-radius:9px;padding:7px}.custom-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:10px}.custom-actions a{color:#6b7280;text-decoration:none}.custom-actions button{padding:8px 13px}.kpi-target .kpi-metric b{color:#1684e8!important}.kpi-completed .kpi-metric b{color:#0aaa55!important}.kpi-progress .kpi-metric b{color:#e99a00!important}.kpi-notstarted .kpi-metric b{color:#ef4b4b!important}.kpi-access{background:#f8fbff!important}.access-total-row{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:12px;margin-top:12px}.access-total{display:block;font-size:54px;color:#123d70;line-height:1}.access-total-row>div>small{display:block;color:#65758a;margin-top:5px}.access-target{background:#f2efff;border-radius:12px;padding:8px 10px;display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center;color:#6044d8}.access-target span{grid-row:1/3;font-size:22px}.access-target small{color:#6044d8!important;margin:0!important}.access-target b{font-size:25px}.access-divider{height:1px;background:#dfe7ef;margin:12px 0 10px}.access-status-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.access-status-row span{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:6px;font-weight:900}.access-status-row b{font-size:23px}.access-status-row small{grid-column:2;color:inherit}.active-code{color:#0aaa55}.expired-code{color:#ef3f46}.quality-panel{padding:24px!important}.quality-head{align-items:flex-start}.quality-head>small{color:#8290a2}.quality-grid{gap:12px!important}.quality-item{display:grid!important;grid-template-columns:52px 1fr auto;align-items:center;gap:14px;padding:15px 16px!important;min-height:76px;border-radius:14px!important}.quality-item i{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;font-style:normal;font-size:24px}.quality-item div b{display:block;color:#102f58;font-size:15px}.quality-item div small{display:block;color:#718197;margin-top:3px}.quality-item strong{font-size:32px}.q-blue{background:#f4f9ff!important;border-color:#cfe3fb!important}.q-blue i{background:#e2f0ff;color:#1976d2}.q-blue strong{color:#1976d2}.q-green{background:#f1fbf6!important;border-color:#c8ebd8!important}.q-green i{background:#dcf6e8;color:#09964a}.q-green strong{color:#09964a}.q-red{background:#fff5f5!important;border-color:#f6d2d4!important}.q-red i{background:#ffe3e5;color:#e5323c}.q-red strong{color:#e5323c}.q-orange{background:#fffaf0!important;border-color:#f4dfb2!important}.q-orange i{background:#fff0ce;color:#e89300}.q-orange strong{color:#e89300}.q-purple{background:#f8f6ff!important;border-color:#ddd5fb!important}.q-purple i{background:#ece7ff;color:#6548d8}.q-purple strong{color:#6548d8}.q-teal{background:#f1fbfb!important;border-color:#c7eaea!important}.q-teal i{background:#dcf5f4;color:#0b9895}.q-teal strong{color:#0b9895}.standard-danger-modal{position:relative!important}.x-close{position:absolute!important;right:16px!important;top:12px!important;background:transparent!important;border:0!important;color:#64748b!important;font-size:28px!important;width:auto!important;min-width:0!important}.confirm-word{display:block;background:#fff3f3;border:1px solid #f5cece;border-radius:12px;padding:12px;text-align:left;color:#394b61}.confirm-word input{background:#fff!important;border:1px solid #ef4444!important}.restore-icon{background:#eaf7ef!important;color:#0a9a50!important}.restore-modal #confirmRestore{background:#173b68;color:#fff}.ui-toast{position:fixed;right:20px;bottom:20px;z-index:100;background:#173b68;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 8px 30px #0002}.recycle-card{border-radius:16px!important}.recycle-card h2{color:#173b68}.recycle-card th{background:#f5f8fb;color:#41536a}.recycle-card td{padding:12px 9px!important}.login-buildings{opacity:.72!important}.login-buildings span{width:50%!important;background-size:cover!important}.building-left{background-position:left center!important}.building-right{background-position:right center!important}.survey-login-card{width:min(430px,92vw)!important}
@media(max-width:800px){.quality-grid{grid-template-columns:1fr!important}.quality-item{grid-template-columns:46px 1fr auto}.dashboard-hero-clean .title-line{flex-wrap:wrap}.access-total{font-size:44px}.custom-menu{left:auto;right:0}}

/* V3.22 Online Cambodia map UI */
.province-map-card .real-map{height:520px;background:linear-gradient(180deg,#f7fbff 0%,#edf5fb 100%);border:1px solid #e1eaf2;border-radius:18px;padding:10px}
.province-map-card .real-map svg{filter:drop-shadow(0 5px 10px rgba(28,64,96,.10))}
.province-map-card .geo-province{cursor:pointer;stroke:#fff;stroke-width:1.35}
.province-map-card .province-label{font-family:'Noto Sans Khmer','Khmer OS Siemreap',sans-serif;font-size:8px;font-weight:700;fill:#17365d;pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:2.5px;stroke-linejoin:round}
.province-map-card .map-bottom{justify-content:center;padding-top:12px}
.province-map-card .legend.compact{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.province-map-card .map-loading{z-index:5;gap:6px;text-align:center;background:#f4f9fd}
.province-map-card .map-loading b{display:block;color:#17365d;font-size:13px}.province-map-card .map-loading small{display:block;margin-top:5px;color:#718096}
@media(max-width:1000px){.province-map-card .real-map{height:470px}}
@media(max-width:600px){.province-map-card .real-map{height:390px}.province-map-card .province-label{font-size:7px}}

/* V3.26 — image-first Cambodia map fallback. The local image is always visible;
   the vector layer replaces it only after a verified 25/25 render. */
.image-first-map{position:relative;background:#eef6fb!important;overflow:hidden!important}
.static-cambodia-map{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);object-fit:contain;display:block;z-index:1;border-radius:14px;filter:saturate(.96) contrast(1.01)}
.vector-map-layer{position:absolute;inset:10px;width:calc(100% - 20px)!important;height:calc(100% - 20px)!important;z-index:4;opacity:0;pointer-events:none;transition:opacity .18s ease}
.static-map-markers{position:absolute;inset:10px;z-index:3;pointer-events:none}
.static-map-marker{position:absolute;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 5px #17365d55;padding:0;cursor:pointer;pointer-events:auto}
.static-map-marker.done{background:#24a461}.static-map-marker.doing{background:#f1a20a}.static-map-marker.wait{background:#e9514a}.static-map-marker.none{background:#aeb8c3}
.static-map-marker span{position:absolute;left:50%;top:12px;transform:translateX(-50%);white-space:nowrap;font-family:'Noto Sans Khmer','Khmer OS Siemreap',sans-serif;font-size:7px;font-weight:700;color:#17365d;background:rgba(255,255,255,.88);padding:1px 3px;border-radius:4px;box-shadow:0 1px 3px #17365d1a}
.map-status-note{inset:auto 16px 16px auto!important;width:auto!important;height:auto!important;display:block!important;place-items:unset!important;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.88)!important;box-shadow:0 2px 8px #17365d1f;color:#6b7d90!important;font-size:9px!important;z-index:6!important;pointer-events:none}
.map-status-note.static-active{color:#17365d!important}
.image-first-map.vector-ready .static-cambodia-map,.image-first-map.vector-ready .static-map-markers{opacity:0;pointer-events:none}
.image-first-map.vector-ready .vector-map-layer{opacity:1;pointer-events:auto}
.image-first-map.vector-ready .map-status-note{display:none!important}
@media(max-width:600px){.static-map-marker span{display:none}.static-map-marker{width:10px;height:10px}}

/* V3.28 — Unified Auto + Manual Target Province Settings */
.map-target-settings{margin-top:14px;border:1px solid #dce7f1;border-radius:14px;background:#fff;overflow:hidden}
.map-target-settings summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;cursor:pointer;color:#173b68;font-weight:900;background:#f8fbfe;list-style:none}
.map-target-settings summary::-webkit-details-marker{display:none}.map-target-settings summary small{color:#74859a;font-weight:600;font-size:11px}
.target-setting-help{display:grid;gap:6px;padding:12px 15px;border-top:1px solid #edf2f6;background:#fbfdff;color:#53657a;font-size:12px}.target-setting-help b{color:#173b68}.target-setting-help span{display:flex;align-items:center;gap:7px}
.source-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.source-dot.auto{background:#1684e8}.source-dot.manual{background:#7047d8}
.target-settings-form{padding:14px 15px}.target-checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.target-check-row{display:flex;align-items:center;gap:8px;min-height:38px;padding:7px 9px;border:1px solid #e2e9f0;border-radius:10px;background:#fff;color:#44566d;font-size:12px}.target-check-row.effective{border-color:#bcd5ee;background:#f5faff}.target-check-row.auto-target{box-shadow:inset 3px 0 0 #1684e8}.target-check-row input{width:16px;height:16px;accent-color:#6044d8}.target-name{font-weight:800;flex:1;color:#173b68}.target-source-badge{font-style:normal;font-weight:900;font-size:9px;border-radius:999px;padding:3px 6px}.target-source-badge.auto{background:#e7f3ff;color:#1678cf}.target-source-badge.manual{background:#f0ebff;color:#6548d8}.target-settings-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #edf2f6}.target-settings-actions span{color:#75869a;font-size:11px}.target-settings-actions button{border:0;border-radius:9px;background:#173b68;color:#fff;padding:9px 14px;font-weight:900;cursor:pointer}.target-checkbox-grid.readonly .target-check-row{min-height:36px}
@media(max-width:900px){.target-checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.target-checkbox-grid{grid-template-columns:1fr}.map-target-settings summary{align-items:flex-start;flex-direction:column}.target-settings-actions{align-items:stretch;flex-direction:column}.target-settings-actions button{width:100%}}


/* V3.29 — standards-based province color map, icon-only target settings, absence KPI, multi-select sub dashboard */
.summary-kpis.kpi-standard{grid-template-columns:repeat(6,minmax(0,1fr))}
.kpi-absent{background:#faf7ff!important}.kpi-absent .kpi-metric b,.kpi-absent .kpi-metric strong{color:#7a52c7!important}.kpi-absent .kpi-bar i{background:#7a52c7}.kpi-absent .kpi-title small{color:#846fa9}
.geo-province.none{fill:#fff!important;stroke:#c8d2dc!important;stroke-width:1.1}.geo-province.done{fill:#20a45d!important}.geo-province.doing{fill:#f2a007!important}.geo-province.wait{fill:#ea514a!important}
.province-map-card .province-label{font-size:8.2px!important;font-weight:800!important;fill:#17365d!important;stroke:#fff!important;stroke-width:2.2px!important}
.map-target-icon-only{margin-top:12px;border:0;background:transparent;overflow:visible}.map-target-icon-only summary{width:38px;height:38px;border-radius:10px;padding:0;display:grid;place-items:center;background:#fff;border:1px solid #d7e1eb;box-shadow:0 3px 10px #17365d14;font-size:18px;color:#173b68}.map-target-icon-only[open]{border:1px solid #dce7f1;background:#fff;border-radius:14px}.map-target-icon-only[open] summary{margin:10px}.map-target-icon-only .target-setting-help,.map-target-icon-only .target-settings-form,.map-target-icon-only>.target-checkbox-grid{margin-left:12px;margin-right:12px}.map-target-icon-only .target-settings-actions{margin:12px}
.static-map-markers{display:none!important}.image-first-map:not(.vector-ready) .map-status-note{display:block!important}.image-first-map.vector-ready .static-cambodia-map{opacity:0!important}
.sub-province-checks{display:grid;grid-template-columns:1fr 1fr;gap:5px;max-height:330px;overflow:auto;padding:4px}.sub-province-checks label{display:flex!important;align-items:center;gap:7px;margin:0!important;padding:7px;border-radius:7px;font-weight:600!important}.sub-province-checks label:hover{background:#eef5fc}.sub-province-checks input{width:auto!important;margin:0}.sub-selection-note{display:block;margin-top:8px;color:#73849a}
@media(max-width:1000px){.summary-kpis.kpi-standard{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.summary-kpis.kpi-standard{grid-template-columns:1fr}.sub-province-checks{grid-template-columns:1fr}}

/* V3.29 Access Codes KPI: Missed is part of Target allocation */
.access-target-stack{display:grid;gap:7px;min-width:0}
.access-target-stack .access-target,.access-target-stack .access-missed{min-width:0}
.access-missed{background:#fff2f2;border:1px solid #ffd2d5;border-radius:12px;padding:8px 10px;display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center;color:#e0353f}
.access-missed span{grid-row:1/3;font-size:22px;font-weight:900}
.access-missed small{color:#e0353f!important;margin:0!important;font-weight:800}
.access-missed b{font-size:25px;color:#e0353f!important;line-height:1.05}
@media (max-width:720px){.access-total-row{grid-template-columns:1fr}.access-target-stack{grid-template-columns:1fr 1fr}}

/* V3.30 — Information + standards-based Data Analysis + original KPI icon assets */
.kpi-card{position:relative}.kpi-original-icon{width:42px;height:42px;object-fit:contain;position:absolute;right:14px;top:13px;z-index:2}.kpi-card:has(.kpi-original-icon) .kpi-title{padding-right:48px}.q-missed strong,.q-missed b,.q-missed small{color:#d9303e!important}
.data-analysis-panel{margin-top:16px}.analysis-badge{background:#eaf4ff;color:#1767ad;border:1px solid #cfe4f8;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.analysis-card{border:1px solid #e2e9f0;border-radius:14px;padding:15px;background:linear-gradient(180deg,#fff,#fbfdff);min-height:180px}.analysis-card h3{margin:0 0 14px;color:#173b68;font-size:13px}.analysis-card h3 small{display:block;color:#8090a3;font-size:10px;margin-top:3px;font-weight:600}.analysis-status-bars{display:grid;gap:11px}.analysis-bar-row{display:grid;grid-template-columns:88px 1fr 82px;gap:8px;align-items:center;font-size:10px}.analysis-bar-row>div{height:8px;border-radius:999px;background:#edf1f5;overflow:hidden}.analysis-bar-row i{display:block;height:100%;border-radius:999px}.analysis-bar-row i.done{background:#20a45d}.analysis-bar-row i.doing{background:#f2a007}.analysis-bar-row i.wait{background:#ea514a}.analysis-bar-row i.missed{background:#c92f3b}.analysis-bar-row>b{text-align:right;color:#243d5b}.analysis-bar-row>b small{color:#8190a2}.rank-list{display:grid;gap:9px}.rank-list>div{display:grid;grid-template-columns:minmax(120px,1.1fr) 1fr 48px;align-items:center;gap:8px;font-size:10px}.rank-list span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-list span b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#eef5fc;color:#1767ad;margin-right:7px}.rank-track{height:7px;background:#edf1f5;border-radius:999px;overflow:hidden}.rank-track i{display:block;height:100%;background:#2679bd;border-radius:999px}.rank-list strong{text-align:right;color:#1767ad}.trend-chart{height:130px;display:flex;align-items:flex-end;gap:7px;padding-top:8px;border-bottom:1px solid #dce4ec}.trend-col{flex:1;height:110px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:10px}.trend-col i{width:min(18px,75%);min-height:2px;background:#287cbd;border-radius:5px 5px 0 0}.trend-col small{font-size:7px;color:#8997a8;transform:rotate(-45deg);margin-top:9px;white-space:nowrap}.missed-analysis{background:#fffafa}.analysis-big{display:flex;align-items:baseline;gap:10px}.analysis-big b{font-size:38px;color:#d9303e}.analysis-big span{font-size:10px;color:#a64b53}.missed-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.missed-list span{background:#fff;border:1px solid #f0d4d7;border-radius:8px;padding:6px 8px;font-size:9px;color:#6b4650}.missed-list b{color:#d9303e}.ok-note{color:#238753!important;border-color:#cfe9d9!important}.analysis-code-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.analysis-code-grid span{border:1px solid #e3eaf1;border-radius:10px;padding:10px;color:#718096;font-size:9px}.analysis-code-grid b{display:block;font-size:22px;color:#173b68;margin-top:4px}.insights-card ul{margin:0;padding-left:18px;display:grid;gap:9px}.insights-card li{font-size:10px;line-height:1.65;color:#53677d}.analysis-empty{color:#8997a8;font-size:10px}.quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.analysis-grid{grid-template-columns:1fr}}@media(max-width:600px){.kpi-original-icon{width:38px;height:38px}.analysis-bar-row{grid-template-columns:78px 1fr 68px}.quality-grid{grid-template-columns:1fr}}

/* V3.31 — Approved KPI B + Information D + interactive map/detail drawer */
.kpi-standard .kpi-card:not(.kpi-access){background:linear-gradient(135deg,var(--kpi-a,#eef6ff),var(--kpi-b,#fff));border:0;box-shadow:0 10px 26px rgba(23,54,93,.08)}
.kpi-target{--kpi-a:#e7f4ff;--kpi-b:#f7fbff}.kpi-completed{--kpi-a:#eafaf2;--kpi-b:#f7fffb}.kpi-progress{--kpi-a:#fff5e4;--kpi-b:#fffaf2}.kpi-notstarted{--kpi-a:#fff0f0;--kpi-b:#fff9f9}.kpi-standard .kpi-metric b{font-size:56px!important;line-height:1}.kpi-access{background:linear-gradient(145deg,#f8fbff,#eef5fb)!important;box-shadow:0 10px 26px rgba(23,54,93,.08)}
.information-option-d{padding:18px!important}.info-d-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.info-d-card{appearance:none;border:1px solid #e6edf4;border-radius:16px;min-height:128px;padding:14px 16px;display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;background:#fff;transition:.18s ease;box-shadow:0 4px 14px rgba(23,54,93,.035)}.info-d-card:hover{transform:translateY(-2px);box-shadow:0 9px 24px rgba(23,54,93,.10)}.info-d-card>img{width:66px;height:66px;object-fit:contain;flex:0 0 66px}.info-d-main{display:grid;grid-template-columns:1fr auto 18px;grid-template-rows:auto auto auto;gap:5px 12px;align-items:center;flex:1;min-width:0}.info-d-copy b{display:block;color:#102f58;font-size:14px}.info-d-copy small{display:block;color:#667a93;font-size:11px;margin-top:3px}.info-d-main>strong{font-size:42px;line-height:1}.info-chevron{font-size:28px;color:#244f7e}.info-progress{grid-column:1/4;height:9px;border-radius:99px;background:#dfe8f1;overflow:hidden}.info-progress i{display:block;height:100%;border-radius:99px}.info-d-main>em{font-style:normal;font-weight:900;font-size:12px}.info-denom{text-align:right;color:#637892}.info-blue{background:linear-gradient(135deg,#f3f9ff,#fbfdff)}.info-green{background:linear-gradient(135deg,#f1fcf6,#fbfffd)}.info-red{background:linear-gradient(135deg,#fff4f4,#fffafa)}.info-orange{background:linear-gradient(135deg,#fff8eb,#fffdf8)}.info-purple{background:linear-gradient(135deg,#f7f3ff,#fdfbff)}.info-teal{background:linear-gradient(135deg,#effcfc,#fbffff)}.info-blue strong,.info-blue em{color:#1479df}.info-blue .info-progress i{background:#1684e8}.info-green strong,.info-green em{color:#0aa25c}.info-green .info-progress i{background:#14b86b}.info-red strong,.info-red em{color:#ef3340}.info-red .info-progress i{background:#f14552}.info-orange strong,.info-orange em{color:#f08b00}.info-orange .info-progress i{background:#f59b12}.info-purple strong,.info-purple em{color:#6846df}.info-purple .info-progress i{background:#7250e8}.info-teal strong,.info-teal em{color:#0b9fa0}.info-teal .info-progress i{background:#12b3b5}
.map-panel-head{align-items:center}.map-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.map-toolbar input,.map-toolbar select{height:38px;border:1px solid #d7e1eb;border-radius:10px;background:#fff;padding:0 10px;color:#17365d}.map-toolbar input{width:170px}.map-toolbar button{height:38px;border:1px solid #d7e1eb;border-radius:10px;background:#fff;color:#17365d;padding:0 11px;cursor:pointer}.map-settings-trigger{font-size:17px}.geo-province{transition:opacity .18s,filter .18s}.map-dimmed{opacity:.14!important}.province-detail-drawer{position:fixed;z-index:1200;right:0;top:0;height:100vh;width:min(410px,92vw);background:#fff;box-shadow:-18px 0 48px rgba(16,47,88,.18);padding:34px 26px;transform:translateX(105%);transition:.25s ease;overflow:auto}.province-detail-drawer.open{transform:translateX(0)}.province-drawer-backdrop{position:fixed;z-index:1199;inset:0;background:#102f5845}.drawer-close{position:absolute;right:18px;top:14px;border:0;background:#eef4fa;border-radius:50%;width:34px;height:34px;font-size:23px;cursor:pointer}.province-detail-drawer h2{font-size:26px;color:#102f58;margin:4px 0 10px}.drawer-status{display:inline-block;padding:5px 10px;border-radius:99px;font-weight:900;font-size:11px}.drawer-status.done{background:#e9f8ef;color:#168d51}.drawer-status.doing{background:#fff2db;color:#c87400}.drawer-status.wait{background:#ffebeb;color:#d9343e}.drawer-status.none{background:#eef2f6;color:#66788c}.drawer-progress{height:11px;background:#e7edf3;border-radius:99px;overflow:hidden;margin-top:22px}.drawer-progress i{display:block;height:100%;background:linear-gradient(90deg,#1684e8,#46a7f3);border-radius:99px}.drawer-rate{display:block;color:#17365d;margin:7px 0 18px}.drawer-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.drawer-metrics>div{border:1px solid #e4ebf2;border-radius:13px;padding:12px;background:#f9fbfd}.drawer-metrics span{display:block;color:#6c7f95;font-size:11px}.drawer-metrics b{display:block;color:#17365d;font-size:21px;margin-top:4px}.drawer-metrics .missed b{color:#ef3340}
.map-target-icon-only[open]{position:fixed;z-index:1250;inset:7vh auto auto 50%;transform:translateX(-50%);width:min(760px,92vw);max-height:86vh;overflow:auto;box-shadow:0 24px 70px rgba(16,47,88,.24)}.map-target-icon-only[open] summary{margin-left:auto}.target-filter-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.target-filter-chips button{border:1px solid #d8e3ed;background:#fff;border-radius:99px;padding:5px 10px;color:#50657c}.target-filter-chips button.active{background:#173b68;color:#fff}
@media(max-width:850px){.info-d-grid{grid-template-columns:1fr}.map-panel-head{align-items:flex-start;gap:12px}.map-toolbar{width:100%}.map-toolbar input{flex:1}.province-visual-grid{grid-template-columns:1fr!important}}@media(max-width:560px){.info-d-card>img{width:52px;height:52px;flex-basis:52px}.info-d-main>strong{font-size:34px}.drawer-metrics{grid-template-columns:1fr 1fr}}
\n/* V3.32 approved dashboard/map/information refinement */
.dashboard-hero-clean{position:relative;overflow:hidden;background:linear-gradient(120deg,#073d79 0%,#075cb5 55%,#0b5ba5 100%)!important;border-bottom:3px solid #e6b11d!important;min-height:116px!important}.dashboard-hero-clean .dashboard-title-wrap{position:relative;z-index:2}.hero-angkor-watermark{position:absolute;z-index:1;right:18%;bottom:-12px;width:360px;height:92px;opacity:.11;background:url('/static/assets/login-building-right.png') center bottom/contain no-repeat;filter:grayscale(1) brightness(1.7)}
.summary-kpis.kpi-standard{grid-template-columns:repeat(5,minmax(0,1fr))!important}.summary-kpis.kpi-standard .kpi-card:not(.kpi-access){position:relative;overflow:hidden;min-height:230px!important;padding:22px!important;color:#fff!important;background:var(--kpi-bg,linear-gradient(145deg,var(--solid-a),var(--solid-b)))!important}.kpi-target{--solid-a:#1197ff;--solid-b:#086eea}.kpi-target-not-started{--kpi-bg:linear-gradient(145deg,#ffe98a 0%,#ffd24d 58%,#f6bb25 100%)}.kpi-completed{--solid-a:#13c98c;--solid-b:#05a96d}.kpi-progress{--solid-a:#ffb134;--solid-b:#ff8512}.kpi-notstarted{--solid-a:#ff5666;--solid-b:#ee2f55}.summary-kpis .kpi-original-icon{width:54px!important;height:54px!important;object-fit:contain!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.12))}.summary-kpis .kpi-title,.summary-kpis .kpi-title small,.summary-kpis .kpi-metric strong,.summary-kpis .kpi-metric b{color:#fff!important}.summary-kpis .kpi-bar{background:#ffffff55!important;height:10px!important}.summary-kpis .kpi-bar i{background:#fff!important}.kpi-detail{position:absolute;left:0;right:0;bottom:0;padding:13px 18px;background:#062d5b26;border-top:1px solid #ffffff22;font-size:12px;color:#fff}.kpi-detail b{font-size:16px}.kpi-detail small{display:block;margin-top:2px;opacity:.9}.kpi-access{min-height:230px!important}
.map-panel-head{align-items:center!important}.map-toolbar{display:grid!important;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto auto!important;gap:10px!important}.map-toolbar input,.map-toolbar select{height:44px!important}.province-visual-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr)!important;gap:18px!important}.map-column,.province-table-column{border:1px solid #e1ebf4;border-radius:18px;background:#fff;overflow:hidden}.map-subhead,.table-subhead{min-height:70px;padding:14px 16px;background:linear-gradient(180deg,#f7fbff,#fff);border-bottom:1px solid #e5edf5;display:flex;flex-direction:column;justify-content:center}.map-subhead b,.table-subhead b{color:#14385f;font-size:14px}.map-subhead small,.table-subhead small{color:#70839a;margin-top:3px}.table-subhead{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.table-subhead .dash-tools{margin:0!important}.real-map{height:510px!important;margin:12px!important;border-radius:14px!important}.map-bottom{padding:0 12px 12px}.legend.compact{justify-content:space-around!important;padding:12px!important;border:1px solid #e4edf5;border-radius:12px;background:#fff}.province-table-column .dash-table{margin:0!important}.province-table-column .province-pagination{padding:10px 14px!important}.province-pagination{justify-content:space-between!important}
.information-option-d{padding:20px!important}.info-d-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}.info-d-card{min-height:190px!important;padding:18px!important;display:block!important;position:relative}.info-d-card>img{width:42px!important;height:42px!important;position:absolute;left:18px;top:18px}.info-d-main{display:grid!important;grid-template-columns:1fr auto 14px!important;grid-template-rows:auto 1fr auto auto!important;gap:7px 10px!important;height:100%;padding-top:0}.info-d-copy{padding-left:54px;min-height:52px}.info-d-copy b{font-size:14px!important}.info-d-copy small{font-size:11px!important}.info-d-main>strong{font-size:42px!important;align-self:start}.info-progress{grid-column:1/4!important;align-self:end;width:100%!important;height:10px!important}.info-d-main>em{grid-column:1/2}.info-denom{grid-column:2/4}.info-chevron{font-size:24px!important}
@media(max-width:1200px){.info-d-grid{grid-template-columns:repeat(2,1fr)!important}.summary-kpis.kpi-standard{grid-template-columns:repeat(2,1fr)!important}.province-visual-grid{grid-template-columns:1fr!important}}@media(max-width:650px){.info-d-grid{grid-template-columns:1fr!important}.map-toolbar{grid-template-columns:1fr 1fr!important}.summary-kpis.kpi-standard{grid-template-columns:1fr!important}.hero-angkor-watermark{right:0;width:240px}}\n
/* V3.33 runtime layout correction — approved 2026-09-21 */
body:has(.admin-shell) .admin-shell{max-width:1440px!important;width:94%!important}
.dashboard-hero-clean{min-height:112px!important;padding:24px 30px!important}
.hero-angkor-watermark{right:22%!important;bottom:0!important;width:430px!important;height:100px!important;opacity:.24!important;background-image:url('/static/assets/angkor-watermark.png')!important;background-size:cover!important;background-position:center 52%!important;mix-blend-mode:screen;filter:saturate(.2) brightness(1.45)!important}
.dashboard-settings{position:relative!important}.dash-settings-menu{top:48px!important;left:0!important;z-index:100!important}.dashboard-settings:not(.open) .dash-settings-menu{display:none!important}.dashboard-settings.open .dash-settings-menu{display:block!important}
.summary-kpis.kpi-standard{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(245px,.92fr)!important;gap:14px!important}
.summary-kpis.kpi-standard .kpi-card:not(.kpi-access){min-height:255px!important;padding:22px 22px 78px!important;border-radius:18px!important}.summary-kpis .kpi-original-icon{width:48px!important;height:48px!important;right:18px!important;top:18px!important}.summary-kpis .kpi-title{font-size:14px!important;line-height:1.35!important}.summary-kpis .kpi-title small{font-size:11px!important;margin-top:4px!important}.summary-kpis .kpi-metric{margin-top:34px!important}.summary-kpis .kpi-metric b{font-size:58px!important}.summary-kpis .kpi-metric strong{font-size:18px!important}.summary-kpis .kpi-bar{margin-top:12px!important}.kpi-detail{min-height:64px!important;padding:12px 20px!important;display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:wrap!important}.kpi-detail b{font-size:28px!important;line-height:1!important}.kpi-detail small{flex-basis:100%;font-size:10px!important}.kpi-access{min-height:255px!important;border:1px solid #dfe8f1!important;color:#17365d!important;padding:20px!important}.kpi-access .kpi-title{color:#17365d!important}.kpi-access .kpi-title small{color:#60758e!important}.access-missed{background:#fff0f0!important;border:1px solid #ffc7c7!important;border-radius:12px!important;padding:8px 10px!important;color:#e5323c!important;display:grid!important;grid-template-columns:auto 1fr!important;column-gap:7px!important;align-items:center!important}.access-missed span{grid-row:1/3;font-size:22px}.access-missed small{color:#d9303e!important;margin:0!important}.access-missed b{font-size:25px!important}
.province-map-card{padding:20px!important}.map-panel-head{display:flex!important;justify-content:space-between!important;gap:18px!important;margin-bottom:16px!important}.map-toolbar{grid-template-columns:minmax(180px,260px) minmax(160px,210px) auto auto!important;flex:0 1 720px!important}.province-visual-grid{grid-template-columns:minmax(0,46fr) minmax(0,54fr)!important;align-items:stretch!important}.map-column,.province-table-column{min-width:0!important}.map-subhead,.table-subhead{min-height:66px!important}.table-subhead .dash-tools{display:none!important}.real-map{height:520px!important;overflow:hidden!important}.static-cambodia-map{width:100%!important;height:100%!important;object-fit:contain!important}.province-table-column{display:flex!important;flex-direction:column!important}.province-table-column>div:has(table){flex:1!important;overflow:auto!important}.province-table-column .dash-table{width:100%!important;table-layout:auto!important}.province-table-column .dash-table th,.province-table-column .dash-table td{white-space:nowrap!important;padding:11px 8px!important;font-size:11px!important}.map-target-icon-only{display:none!important}.map-target-icon-only[open]{display:block!important}.legend.compact{gap:14px!important;justify-content:center!important}
.information-option-d{padding:24px!important}.info-d-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}.info-d-card{min-height:150px!important;padding:16px!important;display:block!important;overflow:hidden!important}.info-d-card>img{width:36px!important;height:36px!important;left:16px!important;top:16px!important}.info-d-main{grid-template-columns:minmax(0,1fr) auto 12px!important;grid-template-rows:auto 1fr 10px 20px!important;gap:6px 8px!important;min-width:0!important}.info-d-copy{padding-left:46px!important;min-height:44px!important;padding-right:4px!important}.info-d-copy b{font-size:12px!important;line-height:1.45!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important}.info-d-copy small{font-size:10px!important;line-height:1.3!important;white-space:normal!important}.info-d-main>strong{font-size:36px!important;line-height:1!important;white-space:nowrap!important}.info-chevron{font-size:20px!important}.info-progress{grid-row:3!important;height:8px!important}.info-d-main>em,.info-denom{grid-row:4!important;font-size:11px!important;align-self:end!important}.info-denom{white-space:nowrap!important}
@media(max-width:1250px){.summary-kpis.kpi-standard{grid-template-columns:repeat(2,minmax(0,1fr))!important}.kpi-access{grid-column:span 2!important}.info-d-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.province-visual-grid{grid-template-columns:1fr!important}.map-toolbar{flex-basis:100%!important}}
@media(max-width:700px){body:has(.admin-shell) .admin-shell{width:96%!important}.summary-kpis.kpi-standard{grid-template-columns:1fr!important}.kpi-access{grid-column:auto!important}.info-d-grid{grid-template-columns:1fr!important}.map-toolbar{grid-template-columns:1fr 1fr!important}.hero-angkor-watermark{right:-80px!important;width:300px!important;opacity:.15!important}}

/* V3.34 final UI refinement — runtime screenshot corrections */
.dashboard-hero-clean{overflow:hidden!important;background:linear-gradient(110deg,#174a82 0%,#123e70 52%,#0b315d 100%)!important}
.hero-angkor-watermark{display:block!important;right:7%!important;bottom:-9px!important;width:510px!important;height:116px!important;opacity:.34!important;background:url('/static/assets/angkor-watermark.png') center bottom/contain no-repeat!important;mix-blend-mode:screen!important;filter:grayscale(1) brightness(1.8)!important;pointer-events:none!important}
.summary-kpis.kpi-standard .kpi-card:not(.kpi-access){min-height:232px!important;padding:20px 20px 66px!important}
.summary-kpis .kpi-metric{margin-top:24px!important}.summary-kpis .kpi-metric b{font-size:54px!important}.summary-kpis .kpi-original-icon{width:46px!important;height:46px!important}.kpi-detail{min-height:54px!important;padding:9px 18px!important}.kpi-detail b{font-size:25px!important}.kpi-detail small{font-size:9px!important;margin-top:0!important}.kpi-access{min-height:232px!important}
.dashboard-lower{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch!important}.overall-progress-card,.information-option-d{min-width:0!important}.information-option-d{padding:22px!important}.info-d-grid{gap:12px!important}.info-d-card{min-height:138px!important;padding:14px!important;overflow:hidden!important}.info-d-card>img{position:static!important;float:left!important;width:34px!important;height:34px!important;margin:0 9px 4px 0!important}.info-d-main{display:grid!important;grid-template-columns:minmax(0,1fr) auto 10px!important;grid-template-rows:minmax(52px,auto) 8px 20px!important;gap:6px 7px!important;height:100%!important}.info-d-copy{padding:0!important;min-height:0!important;overflow:hidden!important}.info-d-copy b{font-size:11px!important;line-height:1.35!important;-webkit-line-clamp:2!important}.info-d-copy small{font-size:9px!important;line-height:1.25!important}.info-d-main>strong{font-size:34px!important;align-self:start!important;line-height:1!important}.info-chevron{font-size:18px!important;align-self:start!important}.info-progress{grid-column:1/4!important;grid-row:2!important;width:100%!important;height:8px!important;margin:0!important}.info-d-main>em{grid-column:1/2!important;grid-row:3!important;font-size:11px!important}.info-denom{grid-column:2/4!important;grid-row:3!important;font-size:10px!important;white-space:nowrap!important}.quality-head{margin-bottom:14px!important}
@media(min-width:1251px){.information-option-d .info-d-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:1250px){.dashboard-lower{grid-template-columns:1fr!important}}
\n\n/* V3.35 — Information first; Overall Progress below */
.dashboard-lower{display:grid!important;grid-template-columns:1fr!important;gap:20px!important;align-items:start!important}
.dashboard-lower>.information-option-d{order:1!important;width:100%!important}
.dashboard-lower>.overall-progress-card{order:2!important;width:100%!important}
.dashboard-lower>.demographic-panel{order:3!important;width:100%!important}
.information-option-d{padding:24px!important}
.information-option-d .info-d-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
.information-option-d .info-d-card{min-width:0!important;min-height:154px!important;padding:16px!important;display:grid!important;grid-template-columns:42px minmax(0,1fr)!important;gap:10px!important;float:none!important}
.information-option-d .info-d-card>img{position:static!important;float:none!important;width:40px!important;height:40px!important;margin:0!important;align-self:start!important}
.information-option-d .info-d-main{display:grid!important;grid-template-columns:minmax(0,1fr) auto 12px!important;grid-template-rows:minmax(54px,auto) 10px 22px!important;gap:7px 8px!important;height:100%!important;min-width:0!important}
.information-option-d .info-d-copy{padding:0!important;min-width:0!important;overflow:visible!important}
.information-option-d .info-d-copy b{font-size:13px!important;line-height:1.35!important;display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important}
.information-option-d .info-d-copy small{font-size:10.5px!important;line-height:1.3!important;display:block!important;overflow:visible!important;word-break:normal!important}
.information-option-d .info-d-main>strong{font-size:38px!important;line-height:1!important;white-space:nowrap!important;align-self:start!important}
.information-option-d .info-chevron{font-size:20px!important;align-self:start!important}
.information-option-d .info-progress{grid-column:1/4!important;grid-row:2!important;width:100%!important;height:9px!important;margin:0!important}
.information-option-d .info-d-main>em{grid-column:1/2!important;grid-row:3!important;font-size:12px!important;align-self:end!important}
.information-option-d .info-denom{grid-column:2/4!important;grid-row:3!important;font-size:11px!important;white-space:nowrap!important;align-self:end!important;text-align:right!important}
.overall-progress-card .progress-layout{display:grid!important;grid-template-columns:minmax(220px,32%) minmax(0,1fr)!important;align-items:center!important;gap:34px!important;padding:8px 22px 18px!important}
.overall-progress-card .progress-ring{margin:auto!important}
.overall-progress-card .progress-list{width:100%!important}
@media(max-width:1100px){.information-option-d .info-d-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:650px){.information-option-d .info-d-grid{grid-template-columns:1fr!important}.overall-progress-card .progress-layout{grid-template-columns:1fr!important}}


/* V3.36 — selected UI alignment + Information-style KPI hover popup */
.dashboard-hero-clean{position:relative!important;isolation:isolate!important;min-height:154px!important;background:linear-gradient(105deg,#174f89 0%,#123f72 50%,#0b315d 100%)!important}
.dashboard-hero-clean .hero-angkor-watermark{position:absolute!important;z-index:0!important;display:block!important;right:3%!important;bottom:2px!important;width:520px!important;height:112px!important;opacity:.58!important;background-image:url('/static/assets/angkor-watermark.png')!important;background-position:center bottom!important;background-size:contain!important;background-repeat:no-repeat!important;mix-blend-mode:normal!important;filter:none!important}
.dashboard-hero-clean .dashboard-title-wrap{position:relative!important;z-index:2!important}
.summary-kpis.kpi-standard .kpi-card:not(.kpi-access){min-height:220px!important;padding:20px 20px 62px!important}
.summary-kpis .kpi-original-icon{width:44px!important;height:44px!important;right:18px!important;top:18px!important;opacity:.9!important}
.summary-kpis .kpi-metric{margin-top:30px!important}.summary-kpis .kpi-metric b{font-size:54px!important}.summary-kpis .kpi-metric strong{font-size:18px!important}.kpi-detail{min-height:58px!important;padding:10px 18px!important}.kpi-detail b{font-size:24px!important}.kpi-detail small{font-size:9.5px!important}
.hover-info-source{cursor:default!important}
.kpi-hover-popup{position:fixed;z-index:5000;width:300px;pointer-events:none;opacity:0;transform:translateY(7px) scale(.98);transition:opacity .16s ease,transform .16s ease;filter:drop-shadow(0 16px 28px rgba(16,48,80,.18))}
.kpi-hover-popup.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.hover-info-card{--tone:#1687e8;display:grid;grid-template-columns:48px minmax(0,1fr) auto;grid-template-rows:auto 10px 22px auto;gap:8px 10px;padding:16px;border:1px solid #dbe7f1;border-radius:18px;background:#f5faff;color:#14345c;box-shadow:0 12px 34px rgba(16,48,80,.14)}
.hover-info-card.tone-green{--tone:#12b76a;background:#f1fbf6}.hover-info-card.tone-orange{--tone:#f59a0a;background:#fff9ef}.hover-info-card.tone-red{--tone:#f04452;background:#fff5f5}.hover-info-card.tone-blue{--tone:#1687e8;background:#f3f9ff}
.hover-info-icon{width:44px;height:44px;object-fit:contain;grid-row:1}.hover-info-copy{min-width:0;align-self:center}.hover-info-copy b{display:block;font-size:14px;line-height:1.35}.hover-info-copy small{display:block;margin-top:2px;font-size:11px;color:#5d7590}.hover-info-value{font-size:38px;line-height:1;color:var(--tone);align-self:center}.hover-info-progress{grid-column:1/4;height:9px;border-radius:99px;background:#dbe6f0;overflow:hidden}.hover-info-progress i{display:block;height:100%;border-radius:inherit;background:var(--tone)}.hover-info-card em{grid-column:1/2;font-style:normal;font-weight:800;font-size:12px;color:var(--tone)}.hover-info-denom{grid-column:2/4;text-align:right;color:#5d7590;font-size:11px}.hover-info-extra{grid-column:1/4;border-top:1px solid rgba(93,117,144,.18);padding-top:8px;color:#526b84;font-size:10.5px;line-height:1.45;min-height:0}.hover-info-extra:empty{display:none}
@media(max-width:900px){.dashboard-hero-clean .hero-angkor-watermark{right:-80px!important;width:390px!important;opacity:.45!important}.kpi-hover-popup{width:min(300px,calc(100vw - 24px))}}
/* V3.37 dashboard hierarchy + Survey Status visual refinement */
.summary-kpis.kpi-five{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important}.summary-kpis.kpi-five .kpi-card{min-height:228px!important;padding:18px 18px 66px!important}.kpi-target-not-started{background:linear-gradient(145deg,#6558d9,#8b65e9)!important;color:#fff!important}.kpi-target-not-started .kpi-title,.kpi-target-not-started .kpi-metric b,.kpi-target-not-started .kpi-metric strong{color:#fff!important}.kpi-target-not-started .kpi-bar{background:#ffffff42!important}.kpi-target-not-started .kpi-bar i{background:#fff!important}.kpi-unit{display:inline-flex!important;background:#fff!important;color:#17365d!important;border-radius:999px!important;padding:4px 9px!important;font-size:10px!important;font-weight:800!important;margin:0 6px!important;vertical-align:middle!important;box-shadow:0 2px 8px #17365d1a!important}.kpi-detail{background:#ffffff20!important;border-top:1px solid #ffffff4a!important;flex-wrap:nowrap!important}.kpi-detail-label{background:#fff!important;color:#17365d!important;border-radius:9px!important;padding:6px 9px!important;display:block!important;min-width:0!important;line-height:1.2!important}.kpi-detail-label>span{font-size:10px!important;font-weight:800!important;display:block!important}.kpi-detail-label small{font-size:8.5px!important;color:#667085!important;display:block!important;margin-top:2px!important}.kpi-detail>b{color:#fff!important;flex:0 0 auto!important}
.access-code-status-panel{margin:18px 0 0!important;background:linear-gradient(180deg,#fff,#f9fbfe)!important;border-color:#dce6f1!important}.access-code-status-panel .quality-head h2{font-size:20px!important}.access-status-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}.access-status-grid .info-d-card{min-height:142px!important}.access-status-grid .info-d-main>strong{font-size:34px!important}
.province-map-card{background:#f9fbfd!important;border:1px solid #dbe5ef!important;border-radius:20px!important;box-shadow:0 10px 30px #17365d0d!important;padding:22px!important}.map-panel-head{align-items:center!important;padding-bottom:16px!important;border-bottom:1px solid #e5edf5!important}.map-panel-head h2{font-size:20px!important}.map-panel-head p{font-size:11px!important;color:#74869a!important}.map-toolbar{display:grid!important;grid-template-columns:minmax(180px,1fr) 180px 110px 54px!important;gap:10px!important}.map-toolbar input,.map-toolbar select,.map-toolbar button{height:44px!important;border:1px solid #d6e1ec!important;border-radius:12px!important;background:#fff!important;margin:0!important;color:#17365d!important;box-shadow:none!important}.map-settings-trigger{font-size:18px!important}.province-visual-grid{grid-template-columns:minmax(0,44fr) minmax(0,56fr)!important;gap:16px!important}.map-column,.province-table-column{background:#fff!important;border:1px solid #dce6f0!important;border-radius:17px!important;overflow:hidden!important;box-shadow:0 5px 18px #17365d0a!important}.map-subhead,.table-subhead{background:linear-gradient(180deg,#fff,#f8fbfe)!important;border-bottom:1px solid #e5edf5!important;padding:16px 18px!important;min-height:68px!important}.map-subhead b,.table-subhead b{font-size:14px!important;color:#17365d!important}.map-subhead small,.table-subhead small{font-size:10px!important;color:#71849a!important}.real-map{height:460px!important;background:#edf5fa!important;margin:14px!important;border-radius:15px!important;border:1px solid #deebf3!important}.map-bottom{padding:0 14px 14px!important}.legend.compact{background:#fff!important;border:1px solid #e0e9f1!important;border-radius:12px!important;padding:9px 12px!important;justify-content:center!important}.province-table-column>div:has(table){overflow:hidden!important}.province-table-column .dash-table th{background:#f5f8fb!important;color:#53677d!important;font-size:10px!important;text-transform:none!important;padding:10px 7px!important}.province-table-column .dash-table td{padding:10px 7px!important;font-size:10.5px!important}.province-table-column .dash-table tbody tr:hover{background:#f2f7fc!important}.province-table-column .dash-table tbody tr{height:43px!important}.province-table-column .pagination{padding:12px 14px!important;border-top:1px solid #e5edf5!important}
@media(max-width:1350px){.summary-kpis.kpi-five{grid-template-columns:repeat(3,minmax(0,1fr))!important}.access-status-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(max-width:900px){.summary-kpis.kpi-five{grid-template-columns:repeat(2,minmax(0,1fr))!important}.province-visual-grid{grid-template-columns:1fr!important}.map-toolbar{grid-template-columns:1fr 1fr!important}.access-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:600px){.summary-kpis.kpi-five,.access-status-grid{grid-template-columns:1fr!important}}


/* V3.38 — focused visual polish after runtime review */
/* Seamless Angkor watermark: crop the source's internal gold rule and feather all edges. */
.dashboard-hero-clean .hero-angkor-watermark{
  right:2%!important;bottom:0!important;width:min(48vw,620px)!important;height:138px!important;
  opacity:.34!important;background-size:auto 154px!important;background-position:center calc(100% + 17px)!important;
  mix-blend-mode:screen!important;filter:grayscale(1) brightness(1.55) contrast(.82)!important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 22%,#000 90%,transparent 100%);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 22%,#000 90%,transparent 100%);mask-composite:intersect;
}
/* Second KPI needs strong contrast and a semantic status icon. */
.kpi-target-not-started{background:linear-gradient(145deg,#6b56d9 0%,#8d66e8 100%)!important;color:#fff!important}
.kpi-target-not-started .kpi-title,.kpi-target-not-started .kpi-title small,.kpi-target-not-started .kpi-metric b,.kpi-target-not-started .kpi-metric strong{color:#fff!important;opacity:1!important}
.kpi-target-not-started .kpi-original-icon{background:rgba(255,255,255,.94);border-radius:50%;padding:6px;box-shadow:0 6px 16px rgba(37,25,92,.18)}
/* Consistent unit badges and more breathable bilingual detail labels. */
.summary-kpis.kpi-five .kpi-unit{min-height:29px!important;padding:5px 10px!important;justify-content:center!important;white-space:nowrap!important}
.summary-kpis.kpi-five .kpi-detail{gap:8px!important;padding:10px 14px!important;align-items:center!important}
.summary-kpis.kpi-five .kpi-detail>b{font-size:27px!important;line-height:1!important}
.summary-kpis.kpi-five .kpi-detail-label{flex:1 1 auto!important;padding:7px 10px!important;border-radius:10px!important;overflow:hidden!important}
.summary-kpis.kpi-five .kpi-detail-label>span{font-size:9.5px!important;white-space:normal!important;overflow-wrap:anywhere!important}
.summary-kpis.kpi-five .kpi-detail-label small{font-size:8px!important;line-height:1.25!important;white-space:normal!important}
/* Access Code Status: balanced 3 x 2 desktop grid; no empty half-row. */
.access-code-status-panel .access-status-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important}
.access-code-status-panel .info-d-card{min-height:158px!important;padding:18px!important}
/* Popup: compact, Information-like fade/lift, never dominates the dashboard. */
.kpi-hover-popup{width:min(278px,calc(100vw - 24px))!important;transform:translateY(8px) scale(.985)!important;transition:opacity .22s ease,transform .22s ease!important}
.kpi-hover-popup.show{transform:translateY(0) scale(1)!important}
.hover-info-card{padding:13px!important;grid-template-columns:40px 1fr auto!important;gap:8px 10px!important}
.hover-info-icon{width:40px!important;height:40px!important}.hover-info-value{font-size:32px!important}
@media(max-width:900px){.access-code-status-panel .access-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-hero-clean .hero-angkor-watermark{right:-6%!important;width:460px!important;opacity:.28!important}}
@media(max-width:600px){.access-code-status-panel .access-status-grid{grid-template-columns:1fr!important}}


/* V3.39 — KPI reference design + Access Code Status hover parity */
.summary-kpis.kpi-five{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:16px!important}
.summary-kpis.kpi-five .kpi-card{position:relative!important;isolation:isolate!important;overflow:hidden!important;min-height:224px!important;padding:24px 22px 22px!important;border:0!important;border-radius:20px!important;color:#fff!important;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;box-shadow:0 10px 24px rgba(23,54,93,.10)!important;cursor:default!important}
/* Exactly the same hover motion language as Access Code Status cards: lift + soft shadow, no popup. */
.summary-kpis.kpi-five .kpi-card:hover,.summary-kpis.kpi-five .kpi-card:focus-within{transform:translateY(-2px)!important;box-shadow:0 9px 24px rgba(23,54,93,.10)!important;filter:brightness(1.015)!important}
.summary-kpis.kpi-five .kpi-target{background:linear-gradient(145deg,#159cff 0%,#0872ed 100%)!important}
.summary-kpis.kpi-five .kpi-target-not-started{background:linear-gradient(145deg,#ffd934 0%,#f7b80c 100%)!important}
.summary-kpis.kpi-five .kpi-completed{background:linear-gradient(145deg,#20cd7c 0%,#08a95f 100%)!important}
.summary-kpis.kpi-five .kpi-progress{background:linear-gradient(145deg,#ffad32 0%,#ff6f14 100%)!important}
.summary-kpis.kpi-five .kpi-notstarted{background:linear-gradient(145deg,#ff5262 0%,#ed2348 100%)!important}
.summary-kpis.kpi-five .kpi-body{position:relative!important;z-index:2!important;height:100%!important}
.summary-kpis.kpi-five .kpi-title,.summary-kpis.kpi-five .kpi-title small,.summary-kpis.kpi-five .kpi-metric b,.summary-kpis.kpi-five .kpi-metric strong{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.08)!important}
.summary-kpis.kpi-five .kpi-title{font-size:15px!important;font-weight:800!important;line-height:1.35!important;max-width:72%!important}.summary-kpis.kpi-five .kpi-title small{display:block!important;font-size:11px!important;margin-top:5px!important;font-weight:600!important}
.summary-kpis.kpi-five .kpi-metric{display:flex!important;align-items:flex-end!important;gap:10px!important;margin-top:76px!important;position:relative!important;z-index:2!important}.summary-kpis.kpi-five .kpi-target .kpi-metric{margin-top:38px!important}
.summary-kpis.kpi-five .kpi-metric b{font-size:60px!important;line-height:.9!important}.summary-kpis.kpi-five .kpi-metric strong{font-size:19px!important;line-height:1.2!important;margin-left:auto!important}
.summary-kpis.kpi-five .kpi-unit{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:31px!important;padding:5px 11px!important;margin:0 0 2px 2px!important;border-radius:999px!important;background:#fff!important;color:#17365d!important;font-size:10px!important;font-weight:800!important;box-shadow:0 4px 12px rgba(23,54,93,.12)!important;white-space:nowrap!important}
.summary-kpis.kpi-five .kpi-bar{height:11px!important;margin-top:18px!important;background:rgba(255,255,255,.30)!important;border-radius:99px!important;overflow:hidden!important}.summary-kpis.kpi-five .kpi-bar i{height:100%!important;background:#fff!important;border-radius:inherit!important;box-shadow:0 0 10px rgba(255,255,255,.18)!important}
/* Large icons sit behind content and use a stronger drop shadow. */
.summary-kpis.kpi-five .kpi-original-icon{position:absolute!important;z-index:0!important;right:18px!important;top:18px!important;width:78px!important;height:78px!important;object-fit:contain!important;opacity:.82!important;filter:drop-shadow(0 10px 10px rgba(0,0,0,.22))!important;transform:none!important;background:transparent!important;padding:0!important;border-radius:0!important;box-shadow:none!important;pointer-events:none!important}
.summary-kpis.kpi-five .kpi-card:hover .kpi-original-icon{filter:drop-shadow(0 12px 12px rgba(0,0,0,.25))!important}
/* Only card 1 keeps the requested lower detail; no white label surface. */
.summary-kpis.kpi-five .kpi-detail{position:absolute!important;left:-22px!important;right:-22px!important;bottom:-22px!important;min-height:62px!important;padding:11px 22px!important;display:flex!important;align-items:center!important;gap:12px!important;background:rgba(4,46,99,.16)!important;border-top:1px solid rgba(255,255,255,.26)!important;color:#fff!important}
.summary-kpis.kpi-five .kpi-detail b{font-size:30px!important;color:#fff!important;line-height:1!important}.summary-kpis.kpi-five .kpi-detail-text{min-width:0!important;color:#fff!important;background:transparent!important;padding:0!important}.summary-kpis.kpi-five .kpi-detail-text span{display:block!important;color:#fff!important;font-size:10px!important;font-weight:800!important;line-height:1.3!important}.summary-kpis.kpi-five .kpi-detail-text small{display:block!important;color:rgba(255,255,255,.9)!important;font-size:8.5px!important;margin-top:2px!important;line-height:1.25!important}
/* Retire legacy KPI popup completely. */
.kpi-hover-popup{display:none!important}
@media(max-width:1350px){.summary-kpis.kpi-five{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:900px){.summary-kpis.kpi-five{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){.summary-kpis.kpi-five{grid-template-columns:1fr!important}.summary-kpis.kpi-five .kpi-card{min-height:210px!important}}
\n\n/* V3.40 — Access Code Status reference UI + refined KPI icons */
/* KPI icons 2–5: smaller, cleaner, and separated from the card hue. */
.summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon{
  width:58px!important;height:58px!important;right:20px!important;top:20px!important;
  opacity:1!important;background:rgba(255,255,255,.88)!important;border-radius:50%!important;
  padding:8px!important;box-sizing:border-box!important;
  filter:drop-shadow(0 7px 9px rgba(23,54,93,.22))!important;
}
.summary-kpis.kpi-five .kpi-card:not(.kpi-target):hover .kpi-original-icon{filter:drop-shadow(0 9px 11px rgba(23,54,93,.25))!important}
/* Access Code Status: exact 3x2 reference palette. */
.access-code-status-panel .info-d-card{border:1px solid #dce7f2!important;box-shadow:0 7px 20px rgba(23,54,93,.055)!important}
.access-code-status-panel .info-blue{background:linear-gradient(145deg,#f4f9ff,#edf6ff)!important}.access-code-status-panel .info-blue strong,.access-code-status-panel .info-blue em{color:#1478d4!important}.access-code-status-panel .info-blue .info-progress i{background:#1689e8!important}
.access-code-status-panel .info-purple{background:linear-gradient(145deg,#fbf8ff,#f6f0ff)!important}.access-code-status-panel .info-purple strong,.access-code-status-panel .info-purple em{color:#6c3fe0!important}.access-code-status-panel .info-purple .info-progress i{background:#7549e7!important}
.access-code-status-panel .info-missed{background:linear-gradient(145deg,#fff6f7,#ffecef)!important;border-color:#f6d7dc!important}.access-code-status-panel .info-missed strong,.access-code-status-panel .info-missed em{color:#dc2444!important}.access-code-status-panel .info-missed .info-progress i{background:#ef2d50!important}
.access-code-status-panel .info-green{background:linear-gradient(145deg,#f3fff9,#eafaf2)!important}.access-code-status-panel .info-green strong,.access-code-status-panel .info-green em{color:#08a95f!important}.access-code-status-panel .info-green .info-progress i{background:#12b96b!important}
.access-code-status-panel .info-orange{background:linear-gradient(145deg,#fffaf0,#fff2df)!important;border-color:#f4dfbd!important}.access-code-status-panel .info-orange strong,.access-code-status-panel .info-orange em{color:#e76d08!important}.access-code-status-panel .info-orange .info-progress i{background:#f07b0c!important}
.access-code-status-panel .info-expired{background:linear-gradient(145deg,#fff0f1,#f6d9dd)!important;border-color:#ecc8cd!important}.access-code-status-panel .info-expired strong,.access-code-status-panel .info-expired em,.access-code-status-panel .info-expired .info-chevron{color:#8f1118!important}.access-code-status-panel .info-expired .info-progress i{background:#a70f17!important}
.access-code-status-panel .info-d-card>img{width:54px!important;height:54px!important;object-fit:contain!important}
.access-code-status-panel .info-d-card:hover{transform:translateY(-2px)!important;box-shadow:0 9px 24px rgba(23,54,93,.10)!important}
\n\n/* V3.41 — clean KPI rebuild from approved reference */
.summary-kpis.kpi-five{gap:18px!important;align-items:stretch!important}
.summary-kpis.kpi-five .kpi-card{min-width:0!important;min-height:244px!important;padding:24px 24px 22px!important;overflow:hidden!important}
.summary-kpis.kpi-five .kpi-target{padding-bottom:78px!important}
.summary-kpis.kpi-five .kpi-target-not-started{background:linear-gradient(145deg,#ffdc38 0%,#f7b90e 100%)!important}
.summary-kpis.kpi-five .kpi-title{display:block!important;position:relative!important;z-index:3!important;max-width:74%!important;min-height:48px!important;color:#fff!important;font-size:14px!important;font-weight:800!important;line-height:1.35!important}
.summary-kpis.kpi-five .kpi-title small{display:block!important;color:#fff!important;font-size:10.5px!important;line-height:1.3!important;margin-top:5px!important;font-weight:600!important;opacity:.96!important}
.summary-kpis.kpi-five .kpi-metric,.summary-kpis.kpi-five .kpi-target .kpi-metric{margin-top:34px!important;display:grid!important;grid-template-columns:auto auto 1fr!important;align-items:end!important;column-gap:10px!important;min-width:0!important}
.summary-kpis.kpi-five .kpi-metric b{font-size:58px!important;line-height:.9!important;min-width:0!important}
.summary-kpis.kpi-five .kpi-metric strong{font-size:18px!important;justify-self:end!important;white-space:nowrap!important;margin:0!important;padding-bottom:3px!important}
.summary-kpis.kpi-five .kpi-unit{margin:0 0 1px!important;min-height:30px!important;padding:5px 10px!important;max-width:96px!important;font-size:9.5px!important;box-shadow:0 4px 10px rgba(23,54,93,.10)!important}
.summary-kpis.kpi-five .kpi-bar{height:10px!important;margin-top:17px!important}
.summary-kpis.kpi-five .kpi-original-icon{z-index:1!important;pointer-events:none!important}
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{width:68px!important;height:68px!important;right:18px!important;top:24px!important;opacity:.40!important;filter:drop-shadow(0 6px 8px rgba(23,54,93,.20))!important}
.summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon{width:52px!important;height:52px!important;right:20px!important;top:20px!important;padding:7px!important;background:rgba(255,255,255,.90)!important;border-radius:50%!important;filter:drop-shadow(0 6px 8px rgba(23,54,93,.20))!important}
.summary-kpis.kpi-five .kpi-detail{left:-24px!important;right:-24px!important;bottom:-22px!important;min-height:66px!important;padding:10px 24px!important;gap:10px!important;background:rgba(7,67,139,.18)!important}
.summary-kpis.kpi-five .kpi-detail b{font-size:27px!important;flex:0 0 auto!important}
.summary-kpis.kpi-five .kpi-detail-text{display:block!important;min-width:0!important;max-width:160px!important}
.summary-kpis.kpi-five .kpi-detail-text span{font-size:9.5px!important;line-height:1.25!important}.summary-kpis.kpi-five .kpi-detail-text small{font-size:8px!important;line-height:1.2!important}
/* Access status: preserve approved 3x2 order and improve reference icon clarity. */
.access-code-status-panel .access-status-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important}
.access-code-status-panel .info-d-card{min-height:166px!important;padding:20px!important;border-radius:18px!important}
.access-code-status-panel .info-d-card>img{width:58px!important;height:58px!important;object-fit:contain!important;filter:drop-shadow(0 4px 5px rgba(23,54,93,.10))!important}
.access-code-status-panel .info-expired{background:linear-gradient(145deg,#fff0f1 0%,#f3d2d7 100%)!important;border-color:#e7bcc2!important}
.access-code-status-panel .info-expired strong,.access-code-status-panel .info-expired em,.access-code-status-panel .info-expired .info-chevron{color:#8b1018!important}.access-code-status-panel .info-expired .info-progress i{background:#9d1018!important}
@media(max-width:1350px){.summary-kpis.kpi-five{gap:14px!important}.summary-kpis.kpi-five .kpi-card{padding-left:18px!important;padding-right:18px!important}.summary-kpis.kpi-five .kpi-detail{left:-18px!important;right:-18px!important;padding-left:18px!important;padding-right:18px!important}}

/* V3.41.1 — KPI status bars use the same percentage/of-total language as Access Code Status. */
.summary-kpis.kpi-five .kpi-metric{grid-template-columns:auto auto!important;margin-top:34px!important;}
.summary-kpis.kpi-five .kpi-status-meta{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-top:7px!important;color:#fff!important;position:relative!important;z-index:3!important;}
.summary-kpis.kpi-five .kpi-status-meta strong{font-size:13px!important;line-height:1!important;color:#fff!important;}
.summary-kpis.kpi-five .kpi-status-meta small{font-size:10px!important;line-height:1!important;color:rgba(255,255,255,.94)!important;font-weight:700!important;white-space:nowrap!important;}
.summary-kpis.kpi-five .kpi-target-not-started{background:linear-gradient(145deg,#ffdc38 0%,#f7b90e 100%)!important;}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta strong,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta small{color:#fff!important;}

/* V3.41.2 — approved final dashboard visual reference */
/* Clean hero: no settings control and no Angkor watermark. */
.dashboard-hero-clean{background:linear-gradient(110deg,#174f89 0%,#123f72 55%,#0b315d 100%)!important;min-height:154px!important;}
.dashboard-hero-clean .hero-angkor-watermark,.dashboard-hero-clean .dashboard-settings,.dashboard-hero-clean .custom-settings{display:none!important;background:none!important;}
.dashboard-hero-clean .title-line{gap:0!important;}

/* KPI palette: Blue → Yellow → Green → Orange → Red. */
.summary-kpis.kpi-five .kpi-target{background:linear-gradient(145deg,#19a9ff 0%,#0877e8 100%)!important;}
.summary-kpis.kpi-five .kpi-target-not-started{background:linear-gradient(145deg,#ffe98a 0%,#ffd24d 58%,#f6bb25 100%)!important;color:#0c315c!important;}
.summary-kpis.kpi-five .kpi-completed{background:linear-gradient(145deg,#20d77c 0%,#069e59 100%)!important;}
.summary-kpis.kpi-five .kpi-progress{background:linear-gradient(145deg,#ffb638 0%,#ff7412 100%)!important;}
.summary-kpis.kpi-five .kpi-notstarted{background:linear-gradient(145deg,#ff5d70 0%,#e9194b 100%)!important;}
/* Yellow card needs dark text for accessible contrast. */
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title,.summary-kpis.kpi-five .kpi-target-not-started .kpi-title small,.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric b,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta strong,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta small{color:#0c315c!important;}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-bar{background:rgba(255,255,255,.58)!important}.summary-kpis.kpi-five .kpi-target-not-started .kpi-bar i{background:#f3a400!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-unit{color:#0c315c!important;background:#fff!important;}

/* Access Code Status: clean professional circular gradient icon treatments. */
.access-code-status-panel .info-d-card>img{width:58px!important;height:58px!important;border-radius:50%!important;padding:11px!important;box-sizing:border-box!important;object-fit:contain!important;box-shadow:0 8px 18px rgba(23,54,93,.16)!important;}
.access-code-status-panel .info-blue>img{background:linear-gradient(145deg,#39c7ff,#0878e8)!important;}
.access-code-status-panel .info-purple>img{background:linear-gradient(145deg,#a06cff,#6523df)!important;}
.access-code-status-panel .info-missed>img{background:linear-gradient(145deg,#ff737e,#d9143b)!important;}
.access-code-status-panel .info-green>img{background:linear-gradient(145deg,#39e79b,#05a45b)!important;}
.access-code-status-panel .info-orange>img{background:linear-gradient(145deg,#ffbf43,#ff6b0a)!important;}
.access-code-status-panel .info-expired>img{background:linear-gradient(145deg,#ff596c,#9d1018)!important;}

/* Dashboard menu owns Main/Sub navigation and Sub Dashboard conditions. */
.dashboard-nav-sub{min-width:300px!important;max-width:360px!important;}
.dashboard-nav-sub>a small{display:block;font-size:10px;opacity:.65;margin-top:2px;}
.nav-dashboard-filter{border-top:1px solid #e4ebf2;margin-top:6px;padding:10px 12px 8px;color:#17365d;}
.nav-dashboard-filter>b,.nav-dashboard-filter>small{display:block}.nav-dashboard-filter>small{font-size:10px;color:#71839a;margin:2px 0 7px}
.nav-province-list{max-height:210px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;padding:5px 0}.nav-province-list label{font-size:10px;display:flex;gap:5px;align-items:center;white-space:nowrap}.nav-province-list input{margin:0}.nav-filter-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:8px}.nav-filter-actions a,.nav-filter-actions button{border:1px solid #d7e2ed;background:#fff;color:#174a82;border-radius:7px;padding:5px 9px;font-size:10px;text-decoration:none}.nav-filter-actions button{background:#174a82;color:#fff;border-color:#174a82}

/* V3.41.3 — Final iconless Access Code Status reference UI */
.access-code-status-panel{padding:22px 24px 24px!important;background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%)!important;border:1px solid #dfe7f0!important;border-radius:18px!important;box-shadow:0 5px 18px rgba(25,55,88,.06)!important}
.access-code-status-panel .quality-head{margin-bottom:16px!important;padding-bottom:12px!important;border-bottom:1px solid #e9eef4!important}
.access-code-status-panel .quality-head h2{font-size:20px!important;color:#17365d!important}.access-code-status-panel .quality-head p{font-size:11px!important;color:#74869a!important;margin-top:3px!important}
.access-code-status-panel .access-status-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important}
.access-code-status-panel .access-status-card{display:block!important;min-height:148px!important;padding:17px 18px 15px!important;border-radius:15px!important;border-width:1px!important;text-align:left!important;overflow:hidden!important;box-shadow:0 3px 10px rgba(25,55,88,.055)!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important}
.access-code-status-panel .access-status-card>img{display:none!important}
.access-code-status-panel .access-status-card .info-d-main{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto 8px auto!important;column-gap:12px!important;row-gap:7px!important;width:100%!important;align-items:center!important}
.access-code-status-panel .access-status-card .info-d-copy{grid-column:1/2;min-width:0!important}.access-code-status-panel .access-status-card .info-d-copy b{font-size:12px!important;line-height:1.35!important;color:#19395f!important}.access-code-status-panel .access-status-card .info-d-copy small{font-size:9.5px!important;line-height:1.25!important;color:#6f8195!important;margin-top:3px!important}
.access-code-status-panel .access-status-card strong{grid-column:1/2;font-size:38px!important;line-height:1!important;letter-spacing:-.5px!important;margin:1px 0 0!important}.access-code-status-panel .access-status-card .info-chevron{grid-column:2/3;grid-row:1/3;align-self:center!important;font-size:28px!important;font-weight:300!important;opacity:.62!important}
.access-code-status-panel .access-status-card .info-progress{grid-column:1/3;height:7px!important;border-radius:999px!important;background:rgba(111,129,149,.14)!important;overflow:hidden!important;margin:1px 0 0!important}.access-code-status-panel .access-status-card .info-progress i{display:block!important;height:100%!important;border-radius:inherit!important}
.access-code-status-panel .access-status-card em{grid-column:1/2;font-size:10px!important;font-style:normal!important;font-weight:800!important}.access-code-status-panel .access-status-card .info-denom{grid-column:2/3;text-align:right!important;font-size:9.5px!important;color:#718297!important;font-weight:600!important}
.access-code-status-panel .access-status-card:hover,.access-code-status-panel .access-status-card:focus-visible{transform:translateY(-2px)!important;box-shadow:0 10px 24px rgba(25,55,88,.11)!important;outline:none!important}
/* Approved card palette: clean tinted backgrounds, no icons. */
.access-code-status-panel .info-blue{background:linear-gradient(145deg,#f2f8ff 0%,#e7f2ff 100%)!important;border-color:#cfe2f7!important}.access-code-status-panel .info-blue strong,.access-code-status-panel .info-blue em,.access-code-status-panel .info-blue .info-chevron{color:#1479d3!important}.access-code-status-panel .info-blue .info-progress i{background:linear-gradient(90deg,#39b9ff,#1479d3)!important}
.access-code-status-panel .info-purple{background:linear-gradient(145deg,#f8f4ff 0%,#efe8ff 100%)!important;border-color:#dfd2fb!important}.access-code-status-panel .info-purple strong,.access-code-status-panel .info-purple em,.access-code-status-panel .info-purple .info-chevron{color:#7044d8!important}.access-code-status-panel .info-purple .info-progress i{background:linear-gradient(90deg,#a36dff,#7044d8)!important}
.access-code-status-panel .info-missed{background:linear-gradient(145deg,#fff5f6 0%,#ffe9ec 100%)!important;border-color:#f3cfd5!important}.access-code-status-panel .info-missed strong,.access-code-status-panel .info-missed em,.access-code-status-panel .info-missed .info-chevron{color:#d92d4b!important}.access-code-status-panel .info-missed .info-progress i{background:linear-gradient(90deg,#ff7182,#d92d4b)!important}
.access-code-status-panel .info-green{background:linear-gradient(145deg,#f1fbf6 0%,#e5f7ee 100%)!important;border-color:#c9ead9!important}.access-code-status-panel .info-green strong,.access-code-status-panel .info-green em,.access-code-status-panel .info-green .info-chevron{color:#0c9b57!important}.access-code-status-panel .info-green .info-progress i{background:linear-gradient(90deg,#39d991,#0c9b57)!important}
.access-code-status-panel .info-orange{background:linear-gradient(145deg,#fff9ed 0%,#fff0d5 100%)!important;border-color:#f2ddb6!important}.access-code-status-panel .info-orange strong,.access-code-status-panel .info-orange em,.access-code-status-panel .info-orange .info-chevron{color:#e48208!important}.access-code-status-panel .info-orange .info-progress i{background:linear-gradient(90deg,#ffc54d,#e48208)!important}
.access-code-status-panel .info-expired{background:linear-gradient(145deg,#fff2f3 0%,#f7dde0 100%)!important;border-color:#e9c2c7!important}.access-code-status-panel .info-expired strong,.access-code-status-panel .info-expired em,.access-code-status-panel .info-expired .info-chevron{color:#8f1018!important}.access-code-status-panel .info-expired .info-progress i{background:linear-gradient(90deg,#c93a43,#8f1018)!important}
@media(max-width:900px){.access-code-status-panel .access-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:600px){.access-code-status-panel .access-status-grid{grid-template-columns:1fr!important}}


/* V3.41.4 — approved three-reference visual system: five KPI gradients + subtle waves + iconless access status */
.summary-kpis.kpi-five .kpi-card{position:relative!important;isolation:isolate!important;overflow:hidden!important}
.summary-kpis.kpi-five .kpi-card::before,.summary-kpis.kpi-five .kpi-card::after{content:""!important;position:absolute!important;z-index:0!important;left:-12%!important;width:125%!important;height:92px!important;border-radius:50% 50% 0 0 / 55% 55% 0 0!important;transform:rotate(-5deg)!important;pointer-events:none!important}
.summary-kpis.kpi-five .kpi-card::before{bottom:44px!important;background:rgba(255,255,255,.105)!important}
.summary-kpis.kpi-five .kpi-card::after{bottom:-10px!important;left:-4%!important;transform:rotate(4deg)!important;background:rgba(255,255,255,.075)!important}
.summary-kpis.kpi-five .kpi-target{background:linear-gradient(145deg,#159cff 0%,#0872ed 100%)!important}
.summary-kpis.kpi-five .kpi-target-not-started{background:linear-gradient(145deg,#ffdd48 0%,#f7bf19 100%)!important}
.summary-kpis.kpi-five .kpi-completed{background:linear-gradient(145deg,#20cd7c 0%,#08a95f 100%)!important}
.summary-kpis.kpi-five .kpi-progress{background:linear-gradient(145deg,#ffad32 0%,#ff781c 100%)!important}
.summary-kpis.kpi-five .kpi-notstarted{background:linear-gradient(145deg,#ff5262 0%,#ed2348 100%)!important}
.summary-kpis.kpi-five .kpi-original-icon{display:none!important}
.summary-kpis.kpi-five .kpi-body{position:relative!important;z-index:2!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title,.summary-kpis.kpi-five .kpi-target-not-started .kpi-title small,.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric b,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta{color:#17365d!important;text-shadow:none!important}
.summary-kpis.kpi-five .kpi-unit{background:transparent!important;color:#fff!important;box-shadow:none!important;border:0!important;padding:0!important;min-height:0!important;font-size:12px!important;font-weight:800!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-unit{color:#17365d!important}
.summary-kpis.kpi-five .kpi-detail-text,.summary-kpis.kpi-five .kpi-detail-text span,.summary-kpis.kpi-five .kpi-detail-text small{background:transparent!important;color:#fff!important;box-shadow:none!important}
/* Access Code Status: iconless pastel cards with very light wave accents. */
.access-code-status-panel .info-d-card{position:relative!important;isolation:isolate!important;overflow:hidden!important;min-height:122px!important;padding:18px 22px!important;border-radius:16px!important}
.access-code-status-panel .info-d-card::before,.access-code-status-panel .info-d-card::after{content:""!important;position:absolute!important;z-index:0!important;left:-8%!important;width:120%!important;height:64px!important;border-radius:50% 50% 0 0 / 55% 55% 0 0!important;pointer-events:none!important;transform:rotate(-5deg)!important;background:rgba(255,255,255,.46)!important}
.access-code-status-panel .info-d-card::before{bottom:8px!important}.access-code-status-panel .info-d-card::after{bottom:-25px!important;left:3%!important;transform:rotate(5deg)!important;background:rgba(255,255,255,.30)!important}
.access-code-status-panel .info-d-main{position:relative!important;z-index:2!important}
.access-code-status-panel .info-blue{background:linear-gradient(145deg,#f3f9ff,#e5f2ff)!important}.access-code-status-panel .info-purple{background:linear-gradient(145deg,#fbf7ff,#f1e9ff)!important}.access-code-status-panel .info-missed{background:linear-gradient(145deg,#fff5f6,#ffe7eb)!important}.access-code-status-panel .info-green{background:linear-gradient(145deg,#f1fff8,#e2f8ed)!important}.access-code-status-panel .info-orange{background:linear-gradient(145deg,#fff9ec,#ffedc9)!important}.access-code-status-panel .info-expired{background:linear-gradient(145deg,#fff1f2,#f8dce0)!important}
.access-code-status-panel .info-d-card>img{display:none!important}
.access-code-status-panel .info-chevron{display:none!important}
.access-code-status-panel .info-progress{height:9px!important;border-radius:99px!important;background:#dbe5ef!important;overflow:hidden!important}


/* V3.41.5 — Sub Dashboard filter UX: move filtering out of nav, add accessible modal + scope chips. */
.dashboard-nav-sub .nav-dashboard-filter{display:none!important}
.sub-dashboard-hero{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:28px!important;padding-right:34px!important}
.sub-dashboard-hero .dashboard-title-wrap{flex:1 1 auto!important;width:auto!important;min-width:0!important}
.sub-scope-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.scope-summary-label{font-size:10px;font-weight:700;color:rgba(255,255,255,.82)}
.scope-chip-list{display:flex;gap:6px;flex-wrap:wrap}.scope-chip{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.12);color:#fff;font-size:9.5px;font-weight:700;backdrop-filter:blur(4px)}.scope-chip-more{background:rgba(230,177,29,.18);border-color:rgba(230,177,29,.45)}.scope-chip-all{margin-top:10px;background:rgba(255,255,255,.12)}
.sub-filter-trigger{flex:0 0 auto;display:inline-flex!important;align-items:center!important;gap:9px!important;min-height:44px!important;padding:0 15px!important;border:1px solid rgba(255,255,255,.78)!important;border-radius:10px!important;background:rgba(7,61,121,.42)!important;color:#fff!important;font-size:12px!important;font-weight:800!important;box-shadow:0 5px 14px rgba(0,0,0,.12)!important}.sub-filter-trigger:hover{background:rgba(255,255,255,.12)!important;transform:translateY(-1px)}.sub-filter-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sub-filter-trigger b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e6b11d;color:#11345d;font-size:9px}
.sub-filter-backdrop{position:fixed;inset:0;z-index:1590;background:rgba(8,31,58,.42);backdrop-filter:blur(2px);opacity:0;transition:opacity .16s ease}.sub-filter-backdrop.open{opacity:1}.sub-filter-dialog-wrap{position:fixed;inset:0;z-index:1600;display:grid;place-items:center;padding:20px;opacity:0;transform:translateY(8px);transition:opacity .16s ease,transform .16s ease;pointer-events:none}.sub-filter-dialog-wrap.open{opacity:1;transform:none;pointer-events:auto}.sub-filter-dialog-wrap[hidden],.sub-filter-backdrop[hidden]{display:none!important}body.sub-filter-open{overflow:hidden}
.sub-filter-dialog{width:min(650px,96vw);max-height:min(760px,92vh);display:flex;flex-direction:column;background:#fff;border:1px solid #dce6f0;border-radius:18px;box-shadow:0 28px 72px rgba(8,38,72,.28);overflow:hidden;color:#17365d}
.sub-filter-head{position:relative;display:grid;grid-template-columns:42px 1fr 34px;gap:12px;align-items:start;padding:20px 22px 14px;border-bottom:1px solid #eef2f6}.sub-filter-title-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#edf5ff;color:#0d66bd}.sub-filter-title-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sub-filter-head h2{margin:0;font-size:19px;line-height:1.25;color:#143b69}.sub-filter-head p{margin:4px 0 0;color:#71839a;font-size:10.5px;line-height:1.55}.sub-filter-close{width:32px;height:32px!important;padding:0!important;border:0!important;border-radius:9px!important;background:transparent!important;color:#6f8298!important;font-size:27px!important;line-height:1!important}.sub-filter-close:hover{background:#f0f4f8!important;color:#17365d!important}
.sub-filter-search{position:relative;margin:14px 22px 8px}.sub-filter-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:none;stroke:#708298;stroke-width:2;stroke-linecap:round}.sub-filter-search input{width:100%;height:42px;margin:0!important;padding:0 13px 0 40px!important;border:1px solid #d6e0ea!important;border-radius:10px!important;background:#fbfdff!important;color:#17365d!important;font-size:11px!important;outline:none}.sub-filter-search input:focus{border-color:#4c94da!important;box-shadow:0 0 0 3px rgba(47,133,216,.12)!important;background:#fff!important}
.sub-filter-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 22px 10px}.sub-filter-tools>div{display:flex;align-items:center;gap:8px}.sub-text-action{padding:4px 2px!important;background:transparent!important;border:0!important;color:#176dc0!important;font-size:10px!important;font-weight:800!important}.sub-text-action:hover{text-decoration:underline}.sub-tool-sep{width:1px;height:16px;background:#dce5ee}.sub-filter-tools strong{font-size:10px;color:#297ac7;white-space:nowrap}
.sub-province-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 18px;min-height:220px;max-height:410px;overflow:auto;padding:8px 22px 16px;border-top:1px solid #f2f5f8;scrollbar-width:thin;scrollbar-color:#a8b8c9 #eef3f7}.sub-province-option{position:relative;display:grid;grid-template-columns:20px 1fr;align-items:center;gap:8px;min-height:40px;padding:5px 7px;border-radius:8px;cursor:pointer}.sub-province-option:hover{background:#f4f8fc}.sub-province-option[hidden]{display:none!important}.sub-province-option input{position:absolute;opacity:0;pointer-events:none}.sub-checkmark{width:17px;height:17px;border:1.5px solid #9eb1c5;border-radius:4px;background:#fff;display:grid;place-items:center}.sub-province-option input:checked+.sub-checkmark{background:#1e7bd8;border-color:#1e7bd8;box-shadow:0 0 0 2px rgba(30,123,216,.08)}.sub-province-option input:checked+.sub-checkmark:after{content:'✓';color:#fff;font-size:11px;font-weight:900;line-height:1}.sub-province-option input:focus-visible+.sub-checkmark{outline:2px solid #75afe4;outline-offset:2px}.sub-province-copy{min-width:0;display:flex;align-items:baseline;gap:7px}.sub-province-copy b{font-size:10.5px;color:#17365d;white-space:nowrap}.sub-province-copy small{font-size:8.5px;color:#71839a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sub-filter-empty{grid-column:1/-1;text-align:center;padding:34px 10px;color:#7b8da0;font-size:11px}
.sub-filter-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 22px 16px;border-top:1px solid #e9eff5;background:#fbfcfe}.sub-filter-help{max-width:54%;font-size:9px;color:#7a8da2;line-height:1.55}.sub-filter-actions{display:flex;gap:9px;align-items:center}.sub-filter-cancel,.sub-filter-apply{height:40px!important;min-width:104px;padding:0 15px!important;border-radius:9px!important;font-size:10px!important;font-weight:800!important}.sub-filter-cancel{background:#fff!important;color:#17365d!important;border:1px solid #b9c8d8!important}.sub-filter-apply{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;background:linear-gradient(135deg,#2487e8,#0f6dd0)!important;border:1px solid #0f6dd0!important;color:#fff!important;box-shadow:0 5px 12px rgba(15,109,208,.20)!important}.sub-filter-apply svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sub-filter-apply:disabled{opacity:.42!important;cursor:not-allowed!important;box-shadow:none!important}
/* Force the approved KPI palette after all legacy rules and cache-bust the stylesheet. */
.summary-kpis.kpi-five .kpi-target-not-started{background:linear-gradient(145deg,#ffe98a 0%,#ffd24d 58%,#f6bb25 100%)!important;color:#0c315c!important}.summary-kpis.kpi-five .kpi-target-not-started .kpi-title,.summary-kpis.kpi-five .kpi-target-not-started .kpi-title small,.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric b,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta strong,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta small,.summary-kpis.kpi-five .kpi-target-not-started .kpi-unit{color:#0c315c!important}
@media(max-width:760px){.sub-dashboard-hero{align-items:flex-start!important;flex-direction:column!important;padding-right:24px!important}.sub-filter-trigger{align-self:stretch!important;justify-content:center!important}.sub-filter-dialog-wrap{padding:10px}.sub-filter-dialog{max-height:94vh}.sub-province-grid{grid-template-columns:1fr;max-height:48vh}.sub-filter-foot{align-items:stretch;flex-direction:column}.sub-filter-help{max-width:none}.sub-filter-actions{justify-content:flex-end}}@media(max-width:460px){.sub-filter-tools{align-items:flex-start;flex-direction:column}.sub-filter-tools strong{align-self:flex-end}.sub-filter-actions{display:grid;grid-template-columns:1fr 1fr}.sub-filter-cancel,.sub-filter-apply{min-width:0!important}.scope-chip-list{display:none}}


/* V3.41.6 — Canonical KPI #2 palette fix.
   The legacy standard-card rule has higher specificity than later palette rules.
   KPI backgrounds now support --kpi-bg so the approved yellow gradient is resolved at the source rule, not by a brittle override. */
.summary-kpis.kpi-standard .kpi-target-not-started{
  --kpi-bg:linear-gradient(145deg,#ffe98a 0%,#ffd24d 58%,#f6bb25 100%);
  color:#0c315c!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title,
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title small,
.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric b,
.summary-kpis.kpi-five .kpi-target-not-started .kpi-unit,
.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta,
.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta strong,
.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta small{color:#0c315c!important;text-shadow:none!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-bar{background:rgba(255,255,255,.58)!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-bar i{background:#f3a400!important}

/* V3.41.8 — precise KPI #2 final styling; no structural overrides */
.summary-kpis .kpi-card.kpi-target-not-started {
  background: linear-gradient(145deg,#f7b900 0%,#ffc928 52%,#f5b400 100%) !important;
  color:#fff !important;
}
.summary-kpis .kpi-card.kpi-target-not-started .kpi-title,
.summary-kpis .kpi-card.kpi-target-not-started .kpi-title small,
.summary-kpis .kpi-card.kpi-target-not-started .kpi-metric b,
.summary-kpis .kpi-card.kpi-target-not-started .kpi-unit,
.summary-kpis .kpi-card.kpi-target-not-started .kpi-status-meta strong,
.summary-kpis .kpi-card.kpi-target-not-started .kpi-status-meta small {
  color:#fff !important;
}
.summary-kpis .kpi-card.kpi-target-not-started .kpi-unit {
  background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important;
}
.summary-kpis .kpi-card.kpi-target-not-started .kpi-bar {
  background:rgba(255,255,255,.34) !important;
}
.summary-kpis .kpi-card.kpi-target-not-started .kpi-bar > i {
  background:#fff !important;
}

/* V3.42 — Province Status Explorer: reliable 25-province inspection UI */
.province-explorer-card{padding:22px!important}.province-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.province-filter-chips button{border:1px solid #dce6f0;background:#fff;color:#53677d;border-radius:999px;padding:8px 12px;font:700 10px inherit;cursor:pointer;box-shadow:0 2px 8px #17365d0a}.province-filter-chips button b{margin-left:4px;color:#17365d}.province-filter-chips button.active{background:#173f6d;color:#fff;border-color:#173f6d;box-shadow:0 6px 14px #173f6d26}.province-filter-chips button.active b{color:#fff}.province-status-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.province-status-card{position:relative;text-align:left;border:1px solid #e0e8f0;background:#fff;border-radius:14px;padding:12px;min-width:0;cursor:pointer;box-shadow:0 5px 16px #17365d0a;transition:.18s ease;overflow:hidden}.province-status-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#aeb7c2}.province-status-card.done:before{background:#20a05a}.province-status-card.doing:before{background:#f3a000}.province-status-card.wait:before{background:#ef554b}.province-status-card:hover{transform:translateY(-2px);border-color:#b8cbe0;box-shadow:0 9px 22px #17365d18}.province-card-head{display:flex;justify-content:space-between;gap:6px;align-items:center}.province-index{font-size:9px;font-weight:800;color:#91a0b0}.province-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:8.5px;font-weight:800;background:#eef2f6;color:#697b8e;white-space:nowrap}.province-status-card.done .province-status-badge,.province-status-badge.done{background:#e7f7ee;color:#17814a}.province-status-card.doing .province-status-badge,.province-status-badge.doing{background:#fff3df;color:#b66b00}.province-status-card.wait .province-status-badge,.province-status-badge.wait{background:#ffebe9;color:#c63e37}.province-status-card h3{margin:9px 0 10px;color:#17365d;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.province-card-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.province-card-metrics span{background:#f7f9fb;border-radius:8px;padding:6px}.province-card-metrics small,.province-card-metrics b{display:block}.province-card-metrics small{font-size:7.5px;color:#7a8999}.province-card-metrics b{font-size:14px;color:#17365d;margin-top:1px}.province-card-progress{height:5px;border-radius:99px;background:#edf1f5;overflow:hidden;margin-top:10px}.province-card-progress i{display:block;height:100%;background:#20a05a;border-radius:inherit}.province-card-foot{display:flex;justify-content:space-between;margin-top:5px;font-size:8.5px;color:#708197;font-weight:700}.explorer-table{border:1px solid #dce6f0!important;border-radius:15px!important;overflow:hidden!important;background:#fff}.explorer-table .table-scroll{max-height:none!important}.explorer-table .dash-table td,.explorer-table .dash-table th{padding:9px 8px!important}.province-result-count{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid #e5edf5;color:#526a82;font-size:10px}.province-result-count small{color:#8a99a9}.province-status-card[hidden],#provinceTable tr[hidden]{display:none!important}@media(max-width:1200px){.province-status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:900px){.province-status-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.province-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.province-result-count{align-items:flex-start;gap:4px;flex-direction:column}}@media(max-width:420px){.province-status-grid{grid-template-columns:1fr}}

/* V3.42.1 — Requirements Completion & UI Refinement */
.summary-kpis .kpi-card{box-shadow:0 14px 30px rgba(19,48,82,.16)!important;transition:transform .18s ease,box-shadow .18s ease}
.summary-kpis .kpi-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(19,48,82,.20)!important}
.summary-kpis .kpi-original-icon{display:block!important;width:58px!important;height:58px!important;right:18px!important;top:20px!important;filter:drop-shadow(0 5px 7px rgba(0,0,0,.24))!important}
.summary-kpis .kpi-title{padding-right:74px!important;min-height:54px!important;display:block!important}
.summary-kpis .kpi-title small{display:block!important}
.summary-kpis .kpi-metric{margin-top:30px!important;min-height:70px!important;display:flex!important;align-items:flex-end!important;justify-content:space-between!important}
.summary-kpis .kpi-metric b{line-height:.95!important}
.kpi-target-not-started .kpi-title,.kpi-target-not-started .kpi-title small,.kpi-target-not-started .kpi-metric b,.kpi-target-not-started .kpi-unit,.kpi-target-not-started .kpi-status-meta{color:#563b00!important;text-shadow:none!important}
.kpi-target-not-started .kpi-bar{background:rgba(255,255,255,.52)!important}.kpi-target-not-started .kpi-bar i{background:#fff!important}
.analysis-primary-grid{grid-template-columns:minmax(300px,.78fr) minmax(520px,1.5fr)!important;margin-bottom:16px}
.analysis-secondary-grid{margin-top:0!important}
.access-donut-wrap{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:24px;padding:8px 4px 2px}
.access-donut{width:164px;height:164px;border-radius:50%;background:conic-gradient(#18ad70 0 calc(var(--active)*1%),#f4a000 calc(var(--active)*1%) calc((var(--active) + var(--expiring))*1%),#ef4b4b calc((var(--active) + var(--expiring))*1%) 100%);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #fff,0 8px 20px #17365d14}
.access-donut:before{content:"";grid-area:1/1;width:112px;height:112px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #e6edf5}
.access-donut>div{grid-area:1/1;z-index:1;text-align:center}.access-donut b{display:block;font-size:34px;color:#173b68}.access-donut span{font-size:11px;color:#73839a}
.chart-legend{display:grid;gap:10px}.chart-legend span{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;color:#53657b}.chart-legend i{width:10px;height:10px;border-radius:50%}.lg-active i{background:#18ad70}.lg-expiring i{background:#f4a000}.lg-expired i{background:#ef4b4b}.chart-legend b{color:#173b68}
.target-chart-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}.target-chart-tabs{display:flex;gap:6px;flex-wrap:wrap}.target-chart-tabs button{border:1px solid #dbe5ef;background:#fff;color:#53657b;border-radius:999px;padding:7px 11px;font-weight:800;cursor:pointer}.target-chart-tabs button.active{background:#173b68;color:#fff;border-color:#173b68}
.target-bars{display:grid;gap:9px;margin-top:14px;max-height:330px;overflow:auto;padding-right:5px}.target-bar-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(150px,2fr) 55px 96px;align-items:center;gap:10px;font-size:12px}.target-bar-row>span{font-weight:800;color:#203d62}.target-bar-track{height:10px;border-radius:999px;background:#edf2f7;overflow:hidden}.target-bar-track i{display:block;height:100%;border-radius:inherit;min-width:4px}.target-bar-track i.done{background:#18ad70}.target-bar-track i.doing{background:#f4a000}.target-bar-track i.wait{background:#ef4b4b}.target-bar-row>b{text-align:right;color:#53657b}.target-bar-row .province-status-badge{font-size:10px!important;text-align:center}.target-chart-empty{padding:30px;text-align:center;color:#8391a3}
@media(max-width:1050px){.analysis-primary-grid{grid-template-columns:1fr!important}.access-donut-wrap{grid-template-columns:164px 1fr}}@media(max-width:650px){.access-donut-wrap{grid-template-columns:1fr;justify-items:center}.target-bar-row{grid-template-columns:90px 1fr 48px}.target-bar-row .province-status-badge{grid-column:2/4;justify-self:start}}

/* V3.42.2 — KPI Precise UI Fix (final cascade overrides) */
.summary-kpis.kpi-five .kpi-card{position:relative!important;overflow:hidden!important}
.summary-kpis.kpi-five .kpi-body{position:relative!important;z-index:2!important;display:flex!important;flex-direction:column!important;height:100%!important}
.summary-kpis.kpi-five .kpi-original-icon{display:block!important;visibility:visible!important;position:absolute!important;z-index:5!important;right:18px!important;top:18px!important;width:58px!important;height:58px!important;object-fit:contain!important;opacity:1!important;padding:7px!important;background:rgba(255,255,255,.94)!important;border-radius:50%!important;box-shadow:0 6px 16px rgba(16,48,80,.16)!important;filter:drop-shadow(0 5px 7px rgba(0,0,0,.20))!important}
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{width:62px!important;height:62px!important;opacity:1!important}
.summary-kpis.kpi-five .kpi-title{box-sizing:border-box!important;display:block!important;width:100%!important;max-width:none!important;height:84px!important;min-height:84px!important;padding:0 76px 0 0!important;margin:0!important;font-size:14px!important;line-height:1.38!important;overflow:hidden!important}
.summary-kpis.kpi-five .kpi-title small{display:block!important;margin-top:5px!important;font-size:10.5px!important;line-height:1.25!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title{font-size:12.5px!important;line-height:1.32!important;padding-right:74px!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title small{font-size:10px!important;margin-top:4px!important}
.summary-kpis.kpi-five .kpi-metric{box-sizing:border-box!important;margin:10px 0 12px!important;min-height:76px!important;height:76px!important;display:flex!important;align-items:flex-end!important;justify-content:space-between!important}
.summary-kpis.kpi-five .kpi-metric b{font-size:58px!important;line-height:.9!important;margin:0!important}
.summary-kpis.kpi-five .kpi-unit{align-self:flex-end!important;margin:0 0 5px 8px!important}
.summary-kpis.kpi-five .kpi-bar{margin-top:0!important}
.summary-kpis.kpi-five .kpi-status-meta{margin-top:6px!important}
.summary-kpis.kpi-five .kpi-target .kpi-detail{display:grid!important;grid-template-columns:auto 1fr!important;align-items:center!important;column-gap:9px!important;row-gap:1px!important;padding:10px 18px!important}
.summary-kpis.kpi-five .kpi-target .kpi-detail b{grid-row:1/3!important;font-size:28px!important}
.summary-kpis.kpi-five .kpi-target .kpi-detail-text{min-width:0!important;display:block!important}
.summary-kpis.kpi-five .kpi-target .kpi-detail-text span,.summary-kpis.kpi-five .kpi-target .kpi-detail-text small{display:block!important;line-height:1.2!important}
.summary-kpis.kpi-five .kpi-target .kpi-detail-text span{font-size:10px!important;font-weight:800!important}.summary-kpis.kpi-five .kpi-target .kpi-detail-text small{font-size:8.5px!important;margin-top:2px!important}

/* V3.42.3 — KPI Standard Icon & Alignment Update */
.summary-kpis.kpi-five .kpi-original-icon{
  right:18px!important;top:18px!important;width:56px!important;height:56px!important;
  object-fit:contain!important;padding:0!important;background:transparent!important;
  border-radius:0!important;box-shadow:none!important;filter:none!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{width:58px!important;height:58px!important}
.summary-kpis.kpi-five .kpi-title{height:84px!important;min-height:84px!important;padding-right:78px!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title{height:84px!important;min-height:84px!important;padding-right:78px!important}
.summary-kpis.kpi-five .kpi-metric,.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric{
  margin:10px 0 12px!important;min-height:76px!important;height:76px!important;
  display:flex!important;align-items:flex-end!important;justify-content:space-between!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-detail{
  background:transparent!important;border:0!important;box-shadow:none!important;
  outline:0!important;border-radius:0!important;
}

/* V3.42.4 — KPI runtime layout fix (precise alignment, no Card #1 divider) */
.summary-kpis.kpi-five .kpi-card{
  min-height:286px!important;
  padding:24px 24px 22px!important;
}
.summary-kpis.kpi-five .kpi-body{
  display:grid!important;
  grid-template-rows:72px 66px 10px 20px 1fr!important;
  row-gap:10px!important;
  height:100%!important;
}
.summary-kpis.kpi-five .kpi-title{
  grid-row:1!important;
  align-self:start!important;
  max-width:70%!important;
  min-height:0!important;
  font-size:14px!important;
  line-height:1.34!important;
}
.summary-kpis.kpi-five .kpi-title small{font-size:10.5px!important;margin-top:5px!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title{font-size:12.5px!important;line-height:1.3!important;max-width:68%!important}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title small{font-size:10.5px!important}
.summary-kpis.kpi-five .kpi-metric,
.summary-kpis.kpi-five .kpi-target .kpi-metric{
  grid-row:2!important;
  margin-top:0!important;
  align-self:end!important;
  display:flex!important;
  align-items:flex-end!important;
  gap:10px!important;
}
.summary-kpis.kpi-five .kpi-metric b{font-size:58px!important;line-height:.9!important}
.summary-kpis.kpi-five .kpi-unit{margin-left:auto!important;margin-bottom:2px!important;background:transparent!important;color:#fff!important;box-shadow:none!important;padding:0!important;min-height:0!important;font-size:10px!important}
.summary-kpis.kpi-five .kpi-bar{grid-row:3!important;margin-top:0!important;height:10px!important;align-self:center!important}
.summary-kpis.kpi-five .kpi-status-meta{grid-row:4!important;margin-top:0!important;align-self:start!important}
.summary-kpis.kpi-five .kpi-original-icon,
.summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{
  width:58px!important;height:58px!important;right:20px!important;top:20px!important;
  opacity:1!important;padding:7px!important;box-sizing:border-box!important;
  background:rgba(255,255,255,.92)!important;border-radius:50%!important;
  filter:drop-shadow(0 6px 8px rgba(23,54,93,.20))!important;
}
/* Card #1 lower total is content inside the card, not a separate bordered box. */
.summary-kpis.kpi-five .kpi-target{padding-bottom:22px!important}
.summary-kpis.kpi-five .kpi-detail{
  position:static!important;
  grid-row:5!important;
  align-self:end!important;
  min-height:54px!important;
  padding:8px 0 0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.summary-kpis.kpi-five .kpi-detail b{font-size:31px!important;line-height:1!important}
.summary-kpis.kpi-five .kpi-detail-text{max-width:none!important}
.summary-kpis.kpi-five .kpi-detail-text span{font-size:10px!important}
.summary-kpis.kpi-five .kpi-detail-text small{font-size:9px!important;margin-top:3px!important}
@media(max-width:1350px){
  .summary-kpis.kpi-five .kpi-card{padding-left:18px!important;padding-right:18px!important}
  .summary-kpis.kpi-five .kpi-original-icon,.summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,.summary-kpis.kpi-five .kpi-target .kpi-original-icon{right:16px!important}
}


/* V3.42.5 — KPI cache-bust + Card #1 isolation fix
   Root cause confirmed from runtime: base.html still requested style.css?v=3.41.8,
   so browsers could reuse stale KPI CSS; KPI icon URLs also had no release token. */
.summary-kpis.kpi-five .kpi-card{
  min-height:286px!important;
  padding:24px 24px 22px!important;
}
.summary-kpis.kpi-five .kpi-body{
  display:grid!important;
  grid-template-rows:64px 62px 10px 18px minmax(44px,1fr)!important;
  row-gap:7px!important;
  height:100%!important;
  min-height:0!important;
}
.summary-kpis.kpi-five .kpi-title{
  grid-row:1!important;
  height:auto!important;
  min-height:0!important;
  max-width:calc(100% - 70px)!important;
  padding-right:0!important;
  overflow:visible!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title{
  max-width:calc(100% - 70px)!important;
  font-size:11.5px!important;
  line-height:1.25!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title small{
  font-size:10px!important;
  line-height:1.15!important;
  margin-top:4px!important;
}
.summary-kpis.kpi-five .kpi-metric,
.summary-kpis.kpi-five .kpi-target .kpi-metric,
.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric{
  grid-row:2!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  align-self:end!important;
}
.summary-kpis.kpi-five .kpi-bar{
  grid-row:3!important;
  height:10px!important;
  margin:0!important;
  align-self:center!important;
}
.summary-kpis.kpi-five .kpi-status-meta{
  grid-row:4!important;
  margin:0!important;
  line-height:18px!important;
  align-self:center!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-detail{
  position:static!important;
  grid-row:5!important;
  min-height:0!important;
  height:auto!important;
  align-self:center!important;
  padding:4px 0 0!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  column-gap:10px!important;
  row-gap:1px!important;
  background:transparent!important;
  border:0!important;
  border-top:0!important;
  box-shadow:none!important;
  outline:0!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-detail b{
  grid-row:1 / 3!important;
  align-self:center!important;
  font-size:30px!important;
  line-height:1!important;
  margin:0!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-detail-text{
  min-width:0!important;
  max-width:none!important;
  align-self:center!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-detail-text span{
  font-size:9.5px!important;
  line-height:1.15!important;
  white-space:normal!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-detail-text small{
  font-size:8.5px!important;
  line-height:1.15!important;
  margin-top:2px!important;
}
.summary-kpis.kpi-five .kpi-original-icon,
.summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{
  width:58px!important;
  height:58px!important;
  right:20px!important;
  top:20px!important;
  padding:7px!important;
  object-fit:contain!important;
  box-sizing:border-box!important;
  background:rgba(255,255,255,.94)!important;
  border-radius:50%!important;
  filter:drop-shadow(0 6px 8px rgba(23,54,93,.20))!important;
}
@media(max-width:1350px){
  .summary-kpis.kpi-five .kpi-card{padding-left:18px!important;padding-right:18px!important}
  .summary-kpis.kpi-five .kpi-title,
  .summary-kpis.kpi-five .kpi-target-not-started .kpi-title{max-width:calc(100% - 64px)!important}
  .summary-kpis.kpi-five .kpi-original-icon,
  .summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,
  .summary-kpis.kpi-five .kpi-target .kpi-original-icon{right:16px!important}
}

/* V3.42.6 — Data Analysis Professional UI + Compact Target Survey Status (Option 1) */
.data-analysis-pro{background:#f8fbff!important;border:1px solid #dce7f2!important;border-radius:20px!important;padding:20px!important;box-shadow:0 10px 30px rgba(20,55,92,.07)!important}
.data-analysis-pro .analysis-panel-head{align-items:center!important;margin-bottom:14px!important;padding-bottom:13px!important;border-bottom:1px solid #e7eef6!important}
.analysis-heading{display:flex;align-items:center;gap:10px}.analysis-heading-icon,.analysis-card-icon{display:grid;place-items:center;flex:0 0 auto;border-radius:10px;font-weight:900}
.analysis-heading-icon{width:34px;height:34px;background:#eaf3ff;color:#116bc4;font-size:18px}.analysis-heading h2{font-size:20px!important;line-height:1.2!important}.analysis-heading p{font-size:10px!important;margin-top:4px!important}
.analysis-head-meta{display:flex;align-items:center;gap:8px}.analysis-live-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#e9f8ef;color:#16844b;font-size:9px;font-weight:800}.analysis-live-pill i{width:7px;height:7px;border-radius:50%;background:#18ad70;box-shadow:0 0 0 3px rgba(24,173,112,.10)}.data-analysis-pro .analysis-badge{padding:7px 10px!important;font-size:10px!important}
.data-analysis-pro .analysis-grid{gap:14px!important}.data-analysis-pro .analysis-primary-grid{grid-template-columns:minmax(280px,.72fr) minmax(520px,1.65fr)!important;margin-bottom:14px!important}.data-analysis-pro .analysis-secondary-grid{grid-template-columns:1fr 1fr!important;gap:14px!important}
.data-analysis-pro .analysis-card{background:#fff!important;border:1px solid #dfe8f1!important;border-radius:16px!important;padding:15px 16px!important;min-height:0!important;box-shadow:0 5px 18px rgba(18,53,90,.045)!important}
.analysis-card-title{display:flex;align-items:flex-start;gap:9px;min-width:0}.analysis-card-title h3{margin:1px 0 0!important;font-size:13px!important;line-height:1.35!important}.analysis-card-title h3 small{margin-top:2px!important;font-size:9px!important}.analysis-card-icon{width:31px;height:31px;font-size:15px;background:#eef5fd;color:#176fc5}.analysis-card-icon.target{background:#fff0f4;color:#e73c68}.analysis-card-icon.performance{background:#edf4ff;color:#216fc3}.analysis-card-icon.missed{background:#fff0f0;color:#df3c43}.analysis-card-icon.insights{background:#eef6ff;color:#1d76ca}
.data-analysis-pro .access-donut-wrap{grid-template-columns:138px minmax(0,1fr)!important;gap:18px!important;padding:10px 2px 0!important}.data-analysis-pro .access-donut{width:132px!important;height:132px!important;box-shadow:0 6px 18px rgba(23,54,93,.10)!important}.data-analysis-pro .access-donut:before{width:88px!important;height:88px!important}.data-analysis-pro .access-donut b{font-size:29px!important}.data-analysis-pro .access-donut span{font-size:9px!important}.data-analysis-pro .chart-legend{gap:0!important}.data-analysis-pro .chart-legend>span{grid-template-columns:10px minmax(0,1fr) auto!important;gap:8px!important;padding:8px 0!important;border-bottom:1px solid #edf2f7!important;font-size:10.5px!important}.data-analysis-pro .chart-legend>span:last-child{border-bottom:0!important}.data-analysis-pro .chart-legend>span>span{display:flex;flex-direction:column;min-width:0}.data-analysis-pro .chart-legend small{font-size:8px;color:#8a99aa;margin-top:1px}.data-analysis-pro .chart-legend b{font-size:13px!important}
.target-status-compact{overflow:hidden}.target-status-compact .target-chart-head{align-items:center!important;gap:10px!important;flex-wrap:nowrap!important;margin-bottom:10px}.target-status-compact .target-chart-tabs{gap:5px!important;justify-content:flex-end!important;flex-wrap:wrap!important}.target-status-compact .target-chart-tabs button{padding:6px 9px!important;font-size:9px!important;line-height:1!important;display:inline-flex!important;align-items:center!important;gap:5px!important;background:#fff!important;color:#52687f!important;border:1px solid #dbe5ef!important;box-shadow:none!important}.target-status-compact .target-chart-tabs button b{font-size:8px;min-width:16px;height:16px;border-radius:999px;display:inline-grid;place-items:center;background:#edf3f8;color:#536c83}.target-status-compact .target-chart-tabs button.active{background:#173f6d!important;color:#fff!important;border-color:#173f6d!important}.target-status-compact .target-chart-tabs button.active b{background:rgba(255,255,255,.18);color:#fff}
.target-bars-compact{display:grid!important;gap:0!important;margin-top:0!important;max-height:246px!important;overflow:auto!important;padding:0 2px 0 0!important;scrollbar-width:thin;scrollbar-color:#b6c7d8 transparent}.target-bars-compact .target-bar-row{grid-template-columns:25px minmax(110px,.9fr) minmax(150px,1.5fr) 48px 48px 92px!important;gap:8px!important;min-height:43px!important;padding:6px 3px!important;border-top:1px solid #eef3f7!important;font-size:10px!important}.target-bars-compact .target-bar-row:first-child{border-top:0!important}.target-row-index{width:22px;height:22px;border-radius:7px;background:#eef5fc;color:#1a68ad;display:grid;place-items:center;font-weight:800;font-size:9px}.target-row-name{font-weight:800;color:#183b62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-bars-compact .target-bar-track{height:7px!important;background:#eaf0f5!important}.target-bars-compact .target-bar-row>b{font-size:10px!important;color:#536b83!important;text-align:right!important}.target-row-rate{font-size:9.5px!important;text-align:right;color:#173b68}.target-bars-compact .province-status-badge{font-size:8.5px!important;min-width:86px!important;justify-content:center!important;padding:5px 7px!important}.target-bars-compact .province-status-badge.done:before{content:'✓';margin-right:4px}.target-bars-compact .province-status-badge.doing:before{content:'◷';margin-right:4px}.target-bars-compact .province-status-badge.wait:before{content:'•';margin-right:4px}
.performance-card .rank-list{gap:0!important;margin-top:10px}.performance-card .rank-list>div{grid-template-columns:minmax(120px,1.1fr) 1.35fr 50px!important;gap:9px!important;min-height:35px;padding:5px 0;border-top:1px solid #eef3f7}.performance-card .rank-list>div:first-child{border-top:0}.performance-card .rank-list span{font-size:10px}.performance-card .rank-list span b{width:22px!important;height:22px!important;border-radius:7px!important}.performance-card .rank-track{height:7px!important}.performance-card .rank-list strong{font-size:10px!important}
.data-analysis-pro .missed-analysis{background:linear-gradient(180deg,#fff,#fffafa)!important}.missed-summary{display:grid;grid-template-columns:minmax(0,1.3fr) .9fr;align-items:center;gap:16px;margin-top:10px;padding:12px 14px;border:1px solid #f3dadd;border-radius:13px;background:#fff7f7}.missed-summary .analysis-big{gap:9px!important}.missed-summary .analysis-big b{font-size:42px!important;line-height:1!important}.missed-summary .analysis-big span{display:flex;flex-direction:column;font-size:10px!important}.missed-summary .analysis-big small{font-size:8px;color:#8f6e74;margin-top:2px}.missed-metrics{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid #f0d7da}.missed-metrics span{padding:3px 12px}.missed-metrics span+span{border-left:1px solid #f0d7da}.missed-metrics small{display:block;font-size:8px;color:#7d8da0}.missed-metrics b{display:block;margin-top:2px;font-size:19px;color:#173b68}.data-analysis-pro .missed-list{margin-top:10px!important}.data-analysis-pro .missed-list .ok-note{display:block!important;width:100%;background:#f3fbf6!important;border-color:#bde4cb!important;color:#16834b!important;padding:9px 10px!important}
.data-analysis-pro .insights-card{grid-column:1/-1!important}.data-analysis-pro .insights-card ul{list-style:none!important;padding:0!important;margin:10px 0 0!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}.data-analysis-pro .insights-card li{position:relative;padding:12px 12px 12px 36px!important;border:1px solid #e4ebf3;border-radius:12px;background:#f8fbfe;font-size:9.5px!important;line-height:1.55!important;color:#496078!important;min-height:56px}.data-analysis-pro .insights-card li:before{content:'✓';position:absolute;left:11px;top:12px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#e7f7ee;color:#16844b;font-size:10px;font-weight:900}.data-analysis-pro .insights-card li:nth-child(3n+1):before{content:'▥';background:#eaf3ff;color:#176fc5}.data-analysis-pro .insights-card li:nth-child(3n):before{content:'◷';background:#fff2df;color:#bd7100}
/* Approved KPI polish bundled with V3.42.6: dark-blue #2 and cleaner icon framing. */
.summary-kpis.kpi-five .kpi-target-not-started,.summary-kpis.kpi-standard .kpi-target-not-started{--kpi-bg:linear-gradient(145deg,#123f73 0%,#0d315d 58%,#08284d 100%)!important;background:var(--kpi-bg)!important;color:#fff!important}.summary-kpis.kpi-five .kpi-target-not-started .kpi-title,.summary-kpis.kpi-five .kpi-target-not-started .kpi-title small,.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric b,.summary-kpis.kpi-five .kpi-target-not-started .kpi-unit,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta strong,.summary-kpis.kpi-five .kpi-target-not-started .kpi-status-meta small{color:#fff!important;text-shadow:none!important}.summary-kpis.kpi-five .kpi-target-not-started .kpi-bar{background:rgba(255,255,255,.25)!important}.summary-kpis.kpi-five .kpi-target-not-started .kpi-bar i{background:#fff!important}
.summary-kpis.kpi-five .kpi-original-icon,.summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,.summary-kpis.kpi-five .kpi-target .kpi-original-icon{width:62px!important;height:62px!important;padding:2px!important;background:rgba(255,255,255,.14)!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:50%!important;filter:drop-shadow(0 5px 8px rgba(10,35,65,.20))!important}.summary-kpis.kpi-five .kpi-target-not-started .kpi-original-icon{padding:5px!important;background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.16)!important}
@media(max-width:1100px){.data-analysis-pro .analysis-primary-grid{grid-template-columns:1fr!important}.target-status-compact .target-chart-head{flex-wrap:wrap!important}.target-status-compact .target-chart-tabs{justify-content:flex-start!important}.data-analysis-pro .analysis-secondary-grid{grid-template-columns:1fr!important}.data-analysis-pro .insights-card ul{grid-template-columns:1fr 1fr!important}}
@media(max-width:700px){.data-analysis-pro{padding:14px!important}.analysis-head-meta{display:none}.data-analysis-pro .access-donut-wrap{grid-template-columns:1fr!important;justify-items:center}.target-bars-compact .target-bar-row{grid-template-columns:24px minmax(90px,1fr) 1.2fr 44px!important}.target-bars-compact .target-row-rate{display:none}.target-bars-compact .province-status-badge{grid-column:2/5;justify-self:start!important}.missed-summary{grid-template-columns:1fr!important}.missed-metrics{border-left:0;border-top:1px solid #f0d7da;padding-top:8px}.data-analysis-pro .insights-card ul{grid-template-columns:1fr!important}}

/* V3.42.7 — KPI Card #2 text isolation + icon clarity final cascade */
.summary-kpis.kpi-five .kpi-card{
  min-height:286px!important;
}
.summary-kpis.kpi-five .kpi-body{
  width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-rows:70px 62px 10px 18px minmax(44px,1fr)!important;
  row-gap:7px!important;
}
.summary-kpis.kpi-five .kpi-title{
  width:100%!important;
  max-width:calc(100% - 72px)!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  min-width:0!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title-two-line{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  gap:1px!important;
  max-width:calc(100% - 76px)!important;
  font-size:11.5px!important;
  line-height:1.28!important;
  letter-spacing:0!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  white-space:normal!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-km-line{
  display:block!important;
  white-space:nowrap!important;
  overflow:visible!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title-two-line small{
  display:block!important;
  margin-top:4px!important;
  font-size:10.5px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric{
  grid-row:2!important;
  margin:0!important;
  min-height:0!important;
  height:auto!important;
  align-self:end!important;
  position:relative!important;
  z-index:3!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-metric b{
  font-size:58px!important;
  line-height:.9!important;
  margin:0!important;
}
.summary-kpis.kpi-five .kpi-original-icon,
.summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{
  width:64px!important;
  height:64px!important;
  right:18px!important;
  top:18px!important;
  padding:4px!important;
  object-fit:contain!important;
  background:rgba(255,255,255,.90)!important;
  border:1px solid rgba(255,255,255,.60)!important;
  border-radius:50%!important;
  box-shadow:0 7px 16px rgba(8,38,72,.16)!important;
  filter:none!important;
  opacity:1!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-original-icon{
  width:64px!important;
  height:64px!important;
  padding:4px!important;
  background:rgba(255,255,255,.92)!important;
  border-color:rgba(255,255,255,.65)!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{
  padding:4px!important;
}
@media(max-width:1350px){
  .summary-kpis.kpi-five .kpi-target-not-started .kpi-title-two-line{font-size:11px!important;max-width:calc(100% - 70px)!important}
  .summary-kpis.kpi-five .kpi-target-not-started .kpi-km-line{white-space:normal!important}
  .summary-kpis.kpi-five .kpi-original-icon,
  .summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,
  .summary-kpis.kpi-five .kpi-target .kpi-original-icon{width:60px!important;height:60px!important;right:14px!important;top:18px!important}
}

/* V3.42.8 — KPI icon & typography final refinement */
.summary-kpis.kpi-five .kpi-card{
  min-height:286px!important;
}
.summary-kpis.kpi-five .kpi-body{
  grid-template-rows:72px 62px 10px 18px minmax(44px,1fr)!important;
  row-gap:7px!important;
}
/* Standardise icon footprint and reduce the heavy white surround. */
.summary-kpis.kpi-five .kpi-original-icon,
.summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{
  width:60px!important;
  height:60px!important;
  right:18px!important;
  top:18px!important;
  padding:1px!important;
  object-fit:contain!important;
  background:rgba(255,255,255,.16)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  border-radius:50%!important;
  box-shadow:0 6px 14px rgba(8,38,72,.14)!important;
  filter:none!important;
  opacity:1!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-original-icon{
  width:60px!important;
  height:60px!important;
  padding:1px!important;
  background:rgba(255,255,255,.14)!important;
  border-color:rgba(255,255,255,.30)!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-original-icon{padding:1px!important}
/* Keep Khmer headings readable while preserving space for the icon. */
.summary-kpis.kpi-five .kpi-title{
  max-width:calc(100% - 70px)!important;
  font-size:14.2px!important;
  line-height:1.38!important;
}
.summary-kpis.kpi-five .kpi-title small{
  font-size:10.8px!important;
  line-height:1.2!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title-two-line{
  max-width:calc(100% - 70px)!important;
  font-size:12.4px!important;
  line-height:1.34!important;
  gap:2px!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-km-line{
  white-space:normal!important;
  overflow:visible!important;
}
.summary-kpis.kpi-five .kpi-target-not-started .kpi-title-two-line small{
  margin-top:5px!important;
  font-size:10.8px!important;
}
/* Give the first-card Not Targeted label a little more legibility. */
.summary-kpis.kpi-five .kpi-target .kpi-detail{
  column-gap:10px!important;
  padding:10px 18px 12px!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-detail-text span{
  font-size:10.8px!important;
  line-height:1.25!important;
}
.summary-kpis.kpi-five .kpi-target .kpi-detail-text small{
  font-size:9.3px!important;
  line-height:1.2!important;
}
@media(max-width:1350px){
  .summary-kpis.kpi-five .kpi-original-icon,
  .summary-kpis.kpi-five .kpi-card:not(.kpi-target) .kpi-original-icon,
  .summary-kpis.kpi-five .kpi-target .kpi-original-icon{
    width:56px!important;height:56px!important;right:14px!important;top:18px!important;
  }
  .summary-kpis.kpi-five .kpi-title,
  .summary-kpis.kpi-five .kpi-target-not-started .kpi-title-two-line{
    max-width:calc(100% - 64px)!important;
  }
  .summary-kpis.kpi-five .kpi-target-not-started .kpi-title-two-line{font-size:11.7px!important}
}


/* V3.42.9 — 6 KPI Soft Minimal 3x2 + Province Explorer Compact List */
.summary-kpis.kpi-six-soft{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;margin:22px 0 24px!important}
.summary-kpis.kpi-six-soft .kpi-card{min-height:250px!important;border:1px solid #dfe8f1!important;border-radius:22px!important;overflow:hidden!important;box-shadow:0 12px 30px rgba(23,54,93,.10)!important;color:#123a68!important;padding:0!important;background:#f7fbff!important}
.summary-kpis.kpi-six-soft .kpi-body{height:100%!important;min-height:250px!important;display:grid!important;grid-template-columns:1fr 94px!important;grid-template-rows:auto 1fr auto auto!important;column-gap:16px!important;row-gap:8px!important;padding:24px 26px 20px!important;position:relative!important;overflow:hidden!important}
.summary-kpis.kpi-six-soft .kpi-body:after{content:'';position:absolute;left:-5%;right:-5%;bottom:-26px;height:96px;border-radius:50% 50% 0 0/55% 55% 0 0;background:rgba(70,150,235,.09);pointer-events:none}
.summary-kpis.kpi-six-soft .kpi-title{grid-column:1!important;grid-row:1!important;display:block!important;max-width:none!important;color:#0c4d96!important;font-weight:800!important;font-size:16px!important;line-height:1.55!important;letter-spacing:0!important;padding:0!important;margin:0!important;text-shadow:none!important;white-space:normal!important;overflow:visible!important}
.summary-kpis.kpi-six-soft .kpi-title small{display:block!important;color:#58769a!important;font-size:12px!important;font-weight:700!important;line-height:1.35!important;margin-top:4px!important}
.summary-kpis.kpi-six-soft .kpi-original-icon{grid-column:2!important;grid-row:1/3!important;position:static!important;justify-self:center!important;align-self:start!important;width:78px!important;height:78px!important;object-fit:contain!important;padding:4px!important;border-radius:50%!important;background:rgba(31,132,232,.10)!important;border:0!important;box-shadow:none!important;filter:none!important;opacity:1!important;margin:0!important}
.summary-kpis.kpi-six-soft .kpi-metric{grid-column:1!important;grid-row:2!important;align-self:end!important;display:flex!important;align-items:flex-end!important;gap:12px!important;margin:4px 0 0!important;position:relative!important;z-index:1!important}
.summary-kpis.kpi-six-soft .kpi-metric b{font-size:58px!important;line-height:.9!important;color:#064c9f!important;font-weight:900!important;letter-spacing:-2px!important;text-shadow:none!important}
.summary-kpis.kpi-six-soft .kpi-unit{font-size:11px!important;color:#365f8e!important;font-weight:800!important;background:transparent!important;padding:0 0 3px!important;margin-left:auto!important;box-shadow:none!important}
.summary-kpis.kpi-six-soft .kpi-bar{grid-column:1/3!important;grid-row:3!important;height:10px!important;border-radius:999px!important;background:#d7e8f8!important;overflow:hidden!important;margin:3px 0 0!important;position:relative!important;z-index:1!important}
.summary-kpis.kpi-six-soft .kpi-bar i{display:block!important;height:100%!important;border-radius:inherit!important;background:linear-gradient(90deg,#168df0,#2b74e9)!important}
.summary-kpis.kpi-six-soft .kpi-status-meta{grid-column:1/3!important;grid-row:4!important;display:flex!important;justify-content:space-between!important;align-items:center!important;margin:0!important;color:#0d58a8!important;position:relative!important;z-index:1!important}
.summary-kpis.kpi-six-soft .kpi-status-meta strong,.summary-kpis.kpi-six-soft .kpi-status-meta small{color:inherit!important;font-size:12px!important;font-weight:800!important;text-shadow:none!important}
.summary-kpis.kpi-six-soft .kpi-target{background:linear-gradient(145deg,#fafdff 0%,#eef7ff 62%,#e5f2ff 100%)!important}
.summary-kpis.kpi-six-soft .kpi-target-not-started{background:linear-gradient(145deg,#f8fbff 0%,#e9f4ff 58%,#dfeeff 100%)!important;color:#123a68!important}
.summary-kpis.kpi-six-soft .kpi-target-not-started .kpi-title,.summary-kpis.kpi-six-soft .kpi-target-not-started .kpi-title small,.summary-kpis.kpi-six-soft .kpi-target-not-started .kpi-metric b,.summary-kpis.kpi-six-soft .kpi-target-not-started .kpi-unit,.summary-kpis.kpi-six-soft .kpi-target-not-started .kpi-status-meta,.summary-kpis.kpi-six-soft .kpi-target-not-started .kpi-status-meta strong,.summary-kpis.kpi-six-soft .kpi-target-not-started .kpi-status-meta small{color:inherit!important;text-shadow:none!important}
.summary-kpis.kpi-six-soft .kpi-target-not-started .kpi-original-icon,.summary-kpis.kpi-six-soft .kpi-not-targeted .kpi-original-icon{background:rgba(28,125,230,.10)!important;padding:8px!important}
.summary-kpis.kpi-six-soft .kpi-not-targeted{background:linear-gradient(145deg,#f9fcff 0%,#edf7ff 55%,#e3f1ff 100%)!important}
.summary-kpis.kpi-six-soft .kpi-completed{background:linear-gradient(145deg,#fbfffd 0%,#effcf5 60%,#e6f9ee 100%)!important;color:#087a47!important}.summary-kpis.kpi-six-soft .kpi-completed .kpi-title,.summary-kpis.kpi-six-soft .kpi-completed .kpi-title small,.summary-kpis.kpi-six-soft .kpi-completed .kpi-metric b,.summary-kpis.kpi-six-soft .kpi-completed .kpi-unit,.summary-kpis.kpi-six-soft .kpi-completed .kpi-status-meta{color:#087a47!important}.summary-kpis.kpi-six-soft .kpi-completed .kpi-original-icon{background:#dff7e9!important}.summary-kpis.kpi-six-soft .kpi-completed .kpi-bar{background:#d8f0e3!important}.summary-kpis.kpi-six-soft .kpi-completed .kpi-bar i{background:linear-gradient(90deg,#11b76e,#27c98a)!important}
.summary-kpis.kpi-six-soft .kpi-progress{background:linear-gradient(145deg,#fffdfa 0%,#fff6e9 60%,#fff0dc 100%)!important;color:#c76300!important}.summary-kpis.kpi-six-soft .kpi-progress .kpi-title,.summary-kpis.kpi-six-soft .kpi-progress .kpi-title small,.summary-kpis.kpi-six-soft .kpi-progress .kpi-metric b,.summary-kpis.kpi-six-soft .kpi-progress .kpi-unit,.summary-kpis.kpi-six-soft .kpi-progress .kpi-status-meta{color:#c76300!important}.summary-kpis.kpi-six-soft .kpi-progress .kpi-original-icon{background:#fff0d8!important}.summary-kpis.kpi-six-soft .kpi-progress .kpi-bar{background:#f8dfbc!important}.summary-kpis.kpi-six-soft .kpi-progress .kpi-bar i{background:linear-gradient(90deg,#ff8b00,#ffad33)!important}
.summary-kpis.kpi-six-soft .kpi-notstarted{background:linear-gradient(145deg,#fffafb 0%,#fff0f4 60%,#ffe8ee 100%)!important;color:#d31b4b!important}.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-title,.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-title small,.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-metric b,.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-unit,.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-status-meta{color:#d31b4b!important}.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-original-icon{background:#ffe3eb!important}.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-bar{background:#f8d6df!important}.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-bar i{background:linear-gradient(90deg,#ff3267,#f34a72)!important}

/* Compact list — Province Survey Status Explorer */
.province-explorer-card{padding:20px!important}.province-explorer-card .map-panel-head{padding-bottom:14px!important;margin-bottom:12px!important}.province-explorer-card .map-panel-head h2{font-size:18px!important}.province-explorer-card .map-panel-head p{font-size:10.5px!important}.province-explorer-card .map-toolbar{grid-template-columns:minmax(190px,250px) 170px 100px 48px!important;gap:8px!important}.province-explorer-card .map-toolbar input,.province-explorer-card .map-toolbar select,.province-explorer-card .map-toolbar button{height:40px!important;border-radius:10px!important}
.province-filter-chips{gap:7px!important;margin:0 0 12px!important;flex-wrap:nowrap!important;overflow-x:auto!important;padding:2px 0 4px!important;scrollbar-width:none}.province-filter-chips::-webkit-scrollbar{display:none}.province-filter-chips button{padding:7px 11px!important;font-size:10px!important;white-space:nowrap!important;box-shadow:none!important}.province-filter-chips button.active{box-shadow:0 5px 12px rgba(23,63,109,.18)!important}
.province-status-grid.province-compact-list{display:flex!important;flex-direction:column!important;gap:0!important;margin:0 0 14px!important;border:1px solid #dde7f0!important;border-radius:16px!important;background:#fff!important;overflow:auto!important;max-height:520px!important;box-shadow:0 6px 18px rgba(23,54,93,.06)!important}
.province-status-grid.province-compact-list .province-compact-row{display:grid!important;grid-template-columns:42px minmax(150px,1.15fr) minmax(180px,2.2fr) 70px 66px 112px!important;align-items:center!important;gap:12px!important;min-height:58px!important;width:100%!important;border:0!important;border-bottom:1px solid #edf2f6!important;border-radius:0!important;padding:8px 14px!important;background:#fff!important;box-shadow:none!important;transform:none!important;overflow:visible!important;color:#17365d!important;position:relative!important;text-align:left!important}
.province-status-grid.province-compact-list .province-compact-row:last-child{border-bottom:0!important}.province-status-grid.province-compact-list .province-compact-row:before{content:''!important;position:absolute!important;left:0!important;top:8px!important;bottom:8px!important;width:3px!important;border-radius:0 3px 3px 0!important;background:#b8c4d0!important}.province-status-grid.province-compact-list .province-compact-row.done:before{background:#1ea45b!important}.province-status-grid.province-compact-list .province-compact-row.doing:before{background:#f3a000!important}.province-status-grid.province-compact-list .province-compact-row.wait:before{background:#e9554b!important}.province-status-grid.province-compact-list .province-compact-row:hover{background:#f8fbfe!important}
.province-compact-row .province-index{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f0f5fa;color:#668099;font-size:9px!important;font-weight:900!important}.province-compact-name{font-size:12px!important;font-weight:800!important;color:#17365d!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.province-compact-progress{height:8px;border-radius:999px;background:#eaf0f5;overflow:hidden}.province-compact-progress i{display:block;height:100%;border-radius:inherit;background:#b4c2ce}.province-compact-row.done .province-compact-progress i{background:linear-gradient(90deg,#1aa75d,#24bd70)}.province-compact-row.doing .province-compact-progress i{background:linear-gradient(90deg,#f39b00,#ffad16)}.province-compact-row.wait .province-compact-progress i{background:linear-gradient(90deg,#ef554b,#f46d64)}.province-compact-count,.province-compact-rate{font-size:10.5px!important;font-weight:800!important;color:#405b78!important;text-align:right!important}.province-compact-rate{color:#17365d!important}.province-compact-row .province-status-badge{justify-self:end!important;min-width:100px!important;justify-content:center!important;padding:5px 9px!important;font-size:9px!important}
.explorer-table{margin-top:4px!important}.explorer-table .table-subhead{min-height:54px!important;padding:12px 16px!important}.explorer-table .table-scroll{max-height:360px!important;overflow:auto!important}
@media(max-width:1050px){.summary-kpis.kpi-six-soft{grid-template-columns:repeat(2,minmax(0,1fr))!important}.province-status-grid.province-compact-list .province-compact-row{grid-template-columns:36px minmax(130px,1fr) minmax(130px,1.8fr) 60px 58px 100px!important;gap:8px!important}}
@media(max-width:720px){.summary-kpis.kpi-six-soft{grid-template-columns:1fr!important}.province-explorer-card .map-toolbar{grid-template-columns:1fr 1fr!important}.province-status-grid.province-compact-list .province-compact-row{grid-template-columns:34px minmax(110px,1fr) 70px 100px!important}.province-compact-progress,.province-compact-rate{display:none!important}}

/* V3.42.10 — KPI Option B (Soft Minimal) final isolation, 3x2 */
.summary-kpis.kpi-six-soft{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  margin:22px 0 26px!important;
}
.summary-kpis.kpi-six-soft > .kpi-card{
  min-height:236px!important;
  padding:0!important;
  border:1px solid #dce7f1!important;
  border-radius:22px!important;
  overflow:hidden!important;
  position:relative!important;
  display:block!important;
  box-shadow:0 10px 28px rgba(23,54,93,.08)!important;
  transform:none!important;
  color:#143b68!important;
  isolation:isolate!important;
}
.summary-kpis.kpi-six-soft > .kpi-card:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 14px 32px rgba(23,54,93,.11)!important;
}
.summary-kpis.kpi-six-soft > .kpi-card::before{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  left:-10%!important;
  right:-10%!important;
  bottom:-44px!important;
  height:116px!important;
  border-radius:50% 50% 0 0/58% 58% 0 0!important;
  opacity:1!important;
  transform:none!important;
  pointer-events:none!important;
}
.summary-kpis.kpi-six-soft > .kpi-card::after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  left:16%!important;
  right:-18%!important;
  bottom:-68px!important;
  height:110px!important;
  border-radius:50% 50% 0 0/58% 58% 0 0!important;
  opacity:1!important;
  transform:rotate(-3deg)!important;
  pointer-events:none!important;
}
.summary-kpis.kpi-six-soft .kpi-body{
  min-height:236px!important;
  height:100%!important;
  width:100%!important;
  padding:23px 25px 19px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 88px!important;
  grid-template-rows:auto minmax(66px,1fr) 9px 20px!important;
  column-gap:16px!important;
  row-gap:8px!important;
  position:relative!important;
  z-index:2!important;
  overflow:visible!important;
}
.summary-kpis.kpi-six-soft .kpi-title{
  grid-column:1!important;
  grid-row:1!important;
  width:auto!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  display:block!important;
  overflow:visible!important;
  white-space:normal!important;
  color:#144f94!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1.48!important;
  text-shadow:none!important;
  letter-spacing:0!important;
}
.summary-kpis.kpi-six-soft .kpi-title small{
  display:block!important;
  margin-top:4px!important;
  color:#5b7696!important;
  font-size:11.5px!important;
  line-height:1.3!important;
  font-weight:700!important;
  text-shadow:none!important;
}
.summary-kpis.kpi-six-soft .kpi-original-icon,
.summary-kpis.kpi-six-soft .kpi-card:not(.kpi-target) .kpi-original-icon,
.summary-kpis.kpi-six-soft .kpi-target .kpi-original-icon{
  grid-column:2!important;
  grid-row:1/3!important;
  position:static!important;
  right:auto!important;
  top:auto!important;
  align-self:start!important;
  justify-self:center!important;
  width:76px!important;
  height:76px!important;
  object-fit:contain!important;
  padding:7px!important;
  margin:0!important;
  border-radius:50%!important;
  border:1px solid rgba(30,120,220,.08)!important;
  background:rgba(39,132,229,.10)!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
  visibility:visible!important;
}
.summary-kpis.kpi-six-soft .kpi-metric{
  grid-column:1!important;
  grid-row:2!important;
  align-self:end!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  gap:12px!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  position:relative!important;
  z-index:2!important;
}
.summary-kpis.kpi-six-soft .kpi-metric b{
  margin:0!important;
  color:#0d4e9e!important;
  font-size:56px!important;
  line-height:.88!important;
  font-weight:900!important;
  letter-spacing:-1.5px!important;
  text-shadow:none!important;
}
.summary-kpis.kpi-six-soft .kpi-unit{
  margin:0 0 3px auto!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:#456889!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1.25!important;
  text-shadow:none!important;
}
.summary-kpis.kpi-six-soft .kpi-bar{
  grid-column:1/3!important;
  grid-row:3!important;
  height:9px!important;
  margin:0!important;
  align-self:center!important;
  border-radius:999px!important;
  overflow:hidden!important;
  background:#d9e8f7!important;
  position:relative!important;
  z-index:2!important;
}
.summary-kpis.kpi-six-soft .kpi-bar i{
  display:block!important;
  height:100%!important;
  max-width:100%!important;
  border-radius:inherit!important;
  background:linear-gradient(90deg,#148df0,#2875e8)!important;
}
.summary-kpis.kpi-six-soft .kpi-status-meta{
  grid-column:1/3!important;
  grid-row:4!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  margin:0!important;
  color:#155aaa!important;
  position:relative!important;
  z-index:2!important;
}
.summary-kpis.kpi-six-soft .kpi-status-meta strong,
.summary-kpis.kpi-six-soft .kpi-status-meta small{
  color:inherit!important;
  font-size:11.5px!important;
  font-weight:800!important;
  text-shadow:none!important;
}

/* Blue family: cards 1-3 */
.summary-kpis.kpi-six-soft > .kpi-target{
  background:linear-gradient(145deg,#ffffff 0%,#f3f9ff 55%,#eaf5ff 100%)!important;
}
.summary-kpis.kpi-six-soft > .kpi-target::before{background:rgba(59,145,232,.075)!important}
.summary-kpis.kpi-six-soft > .kpi-target::after{background:rgba(59,145,232,.05)!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started{
  background:linear-gradient(145deg,#ffffff 0%,#eef6ff 55%,#e5f1ff 100%)!important;
  color:#143b68!important;
  --kpi-bg:none!important;
}
.summary-kpis.kpi-six-soft > .kpi-target-not-started::before{background:rgba(40,117,213,.085)!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started::after{background:rgba(40,117,213,.055)!important}
.summary-kpis.kpi-six-soft > .kpi-not-targeted{
  background:linear-gradient(145deg,#ffffff 0%,#f4f9ff 55%,#ebf4ff 100%)!important;
}
.summary-kpis.kpi-six-soft > .kpi-not-targeted::before{background:rgba(68,138,211,.07)!important}
.summary-kpis.kpi-six-soft > .kpi-not-targeted::after{background:rgba(68,138,211,.045)!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-title,
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-title small,
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-metric b,
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-unit,
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-status-meta,
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-status-meta strong,
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-status-meta small{
  color:#144f94!important;
  text-shadow:none!important;
}
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-title small{color:#5b7696!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-metric b{color:#0d4e9e!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-unit{color:#456889!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-status-meta{color:#155aaa!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-bar{background:#d9e8f7!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-bar i{background:linear-gradient(90deg,#148df0,#2875e8)!important}
.summary-kpis.kpi-six-soft > .kpi-target-not-started .kpi-original-icon,
.summary-kpis.kpi-six-soft > .kpi-not-targeted .kpi-original-icon{background:rgba(39,132,229,.10)!important;padding:7px!important}

/* Status family: cards 4-6 */
.summary-kpis.kpi-six-soft > .kpi-completed{
  background:linear-gradient(145deg,#ffffff 0%,#f1fbf6 56%,#e6f8ee 100%)!important;
  color:#087a47!important;
}
.summary-kpis.kpi-six-soft > .kpi-completed::before{background:rgba(30,179,104,.075)!important}
.summary-kpis.kpi-six-soft > .kpi-completed::after{background:rgba(30,179,104,.05)!important}
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-title,
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-title small,
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-metric b,
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-unit,
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-status-meta{color:#087a47!important}
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-title small{color:#4b8167!important}
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-original-icon{background:#ddf6e8!important;border-color:#d1efdf!important}
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-bar{background:#d8f0e3!important}
.summary-kpis.kpi-six-soft > .kpi-completed .kpi-bar i{background:linear-gradient(90deg,#11b76e,#27c98a)!important}

.summary-kpis.kpi-six-soft > .kpi-progress{
  background:linear-gradient(145deg,#ffffff 0%,#fff8ee 56%,#fff0dc 100%)!important;
  color:#c76300!important;
}
.summary-kpis.kpi-six-soft > .kpi-progress::before{background:rgba(243,160,0,.075)!important}
.summary-kpis.kpi-six-soft > .kpi-progress::after{background:rgba(243,160,0,.05)!important}
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-title,
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-title small,
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-metric b,
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-unit,
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-status-meta{color:#c76300!important}
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-title small{color:#9a7248!important}
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-original-icon{background:#fff0d8!important;border-color:#f7e4c5!important}
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-bar{background:#f8dfbc!important}
.summary-kpis.kpi-six-soft > .kpi-progress .kpi-bar i{background:linear-gradient(90deg,#ff8b00,#ffad33)!important}

.summary-kpis.kpi-six-soft > .kpi-notstarted{
  background:linear-gradient(145deg,#ffffff 0%,#fff2f5 56%,#ffe8ee 100%)!important;
  color:#d31b4b!important;
}
.summary-kpis.kpi-six-soft > .kpi-notstarted::before{background:rgba(235,56,99,.07)!important}
.summary-kpis.kpi-six-soft > .kpi-notstarted::after{background:rgba(235,56,99,.045)!important}
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-title,
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-title small,
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-metric b,
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-unit,
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-status-meta{color:#d31b4b!important}
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-title small{color:#9e6575!important}
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-original-icon{background:#ffe3eb!important;border-color:#f6d8e1!important}
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-bar{background:#f8d6df!important}
.summary-kpis.kpi-six-soft > .kpi-notstarted .kpi-bar i{background:linear-gradient(90deg,#ff3267,#f34a72)!important}

@media(max-width:1050px){
  .summary-kpis.kpi-six-soft{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
  .summary-kpis.kpi-six-soft{grid-template-columns:1fr!important;gap:12px!important}
  .summary-kpis.kpi-six-soft .kpi-body{padding:20px 20px 17px!important;grid-template-columns:minmax(0,1fr) 74px!important;min-height:218px!important}
  .summary-kpis.kpi-six-soft > .kpi-card{min-height:218px!important}
  .summary-kpis.kpi-six-soft .kpi-original-icon,
  .summary-kpis.kpi-six-soft .kpi-card:not(.kpi-target) .kpi-original-icon,
  .summary-kpis.kpi-six-soft .kpi-target .kpi-original-icon{width:66px!important;height:66px!important}
  .summary-kpis.kpi-six-soft .kpi-metric b{font-size:50px!important}
}

/* V3.42.11 — KPI Progress Bar + Inline Unit Refinement */
.summary-kpis.kpi-six-soft .kpi-body{
  grid-template-rows:auto minmax(72px,1fr) 8px 22px!important;
  row-gap:10px!important;
}
.summary-kpis.kpi-six-soft .kpi-metric{
  display:inline-flex!important;
  align-items:baseline!important;
  justify-content:flex-start!important;
  gap:10px!important;
  width:max-content!important;
  max-width:100%!important;
  align-self:end!important;
  white-space:nowrap!important;
}
.summary-kpis.kpi-six-soft .kpi-metric b{
  flex:0 0 auto!important;
  line-height:.9!important;
}
.summary-kpis.kpi-six-soft .kpi-unit{
  flex:0 1 auto!important;
  margin:0!important;
  padding:0 0 4px!important;
  font-size:18px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:0!important;
  white-space:nowrap!important;
  opacity:.96!important;
}
.summary-kpis.kpi-six-soft .kpi-bar{
  height:8px!important;
  margin-top:2px!important;
  box-shadow:inset 0 0 0 1px rgba(20,79,148,.035)!important;
}
.summary-kpis.kpi-six-soft .kpi-bar i{
  transition:width .35s ease!important;
}
.summary-kpis.kpi-six-soft .kpi-status-meta{
  min-height:22px!important;
  line-height:1.2!important;
}
.summary-kpis.kpi-six-soft .kpi-status-meta strong,
.summary-kpis.kpi-six-soft .kpi-status-meta small{
  font-size:12.5px!important;
  line-height:1.2!important;
}
@media(max-width:760px){
  .summary-kpis.kpi-six-soft .kpi-metric{gap:8px!important}
  .summary-kpis.kpi-six-soft .kpi-unit{font-size:16px!important;padding-bottom:3px!important}
  .summary-kpis.kpi-six-soft .kpi-bar{height:8px!important}
}
@media(max-width:480px){
  .summary-kpis.kpi-six-soft .kpi-unit{font-size:15px!important;white-space:normal!important;max-width:110px!important}
}

/* V3.42.12 — KPI Progress Bar Soft Shadow Final */
.summary-kpis.kpi-six-soft .kpi-bar{
  position:relative!important;
  overflow:visible!important;
  height:8px!important;
  border-radius:999px!important;
  box-shadow:
    inset 0 0 0 1px rgba(18,67,118,.045),
    0 4px 10px rgba(18,67,118,.12)!important;
}
.summary-kpis.kpi-six-soft .kpi-bar i{
  position:relative!important;
  display:block!important;
  height:100%!important;
  border-radius:999px!important;
  box-shadow:
    0 2px 5px rgba(22,117,214,.22),
    0 0 8px rgba(22,117,214,.10)!important;
  transition:width .4s ease!important;
}
.summary-kpis.kpi-six-soft .kpi-completed .kpi-bar i{
  box-shadow:0 2px 5px rgba(17,183,110,.24),0 0 8px rgba(17,183,110,.10)!important;
}
.summary-kpis.kpi-six-soft .kpi-progress .kpi-bar i{
  box-shadow:0 2px 5px rgba(255,139,0,.24),0 0 8px rgba(255,139,0,.10)!important;
}
.summary-kpis.kpi-six-soft .kpi-notstarted .kpi-bar i{
  box-shadow:0 2px 5px rgba(243,74,114,.24),0 0 8px rgba(243,74,114,.10)!important;
}
@media(max-width:760px){
  .summary-kpis.kpi-six-soft .kpi-bar{box-shadow:inset 0 0 0 1px rgba(18,67,118,.04),0 3px 8px rgba(18,67,118,.10)!important}
}

/* V3.42.19 — Compact main dashboard hero to keep the 3x2 KPI grid in view */
.dashboard-hero-clean:not(.sub-dashboard-hero){
  min-height:82px!important;
  padding:16px 28px!important;
  border-radius:18px!important;
  box-sizing:border-box!important;
}
.dashboard-hero-clean:not(.sub-dashboard-hero) h1{margin:0!important;font-size:25px!important;line-height:1.35!important}
.dashboard-hero-clean:not(.sub-dashboard-hero) p{margin:3px 0 0!important;font-size:12px!important;line-height:1.4!important}
@media(max-width:800px){.dashboard-hero-clean:not(.sub-dashboard-hero){min-height:72px!important;padding:13px 18px!important}.dashboard-hero-clean:not(.sub-dashboard-hero) h1{font-size:21px!important}}
/* V3.42.20 — compact approved Completed Responses cards */
.demographic-panel{padding:24px 28px!important}.demographic-panel .panel-head{margin-bottom:16px!important;padding-bottom:14px!important}.demographic-cards{gap:18px!important}.demographic-category{padding:18px 20px!important;border-radius:18px!important}.demographic-category h3{margin:0 0 12px!important;font-size:15px!important}.demographic-icon{width:38px!important;height:38px!important;border-radius:12px!important}.demographic-metric{padding:12px 0!important}.demographic-metric>div:first-child{align-items:center!important}.demographic-metric strong b{font-size:22px!important}.demographic-track{height:7px!important;margin-top:7px!important}.demographic-category:nth-child(1) .demographic-icon{background:#e9f2ff!important;color:#3479df!important}.demographic-category:nth-child(2) .demographic-icon{background:#f1eafe!important;color:#8563d2!important}
/* V3.42.20 professional admin logout confirmation */
.logout-confirm{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;background:#10233f70;backdrop-filter:blur(5px);padding:20px}.logout-confirm[hidden]{display:none}.logout-card{position:relative;width:min(480px,94vw);box-sizing:border-box;background:#fff;border:1px solid #dce6f2;border-radius:22px;padding:28px;box-shadow:0 28px 80px #0d234245;text-align:center}.logout-x{position:absolute;right:16px;top:14px;width:34px;height:34px;border:0;border-radius:10px;background:#f1f5fa;color:#6e8299;font-size:22px;cursor:pointer}.logout-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#eaf2ff;color:#246bd1;font-size:28px}.logout-card h2{margin:0;color:#173b68;font-size:22px}.logout-card p{color:#6d8098;margin:8px 0 14px}.logout-note{padding:10px 12px;border-radius:10px;background:#f6f9fd;color:#8292a5;font-size:12px}.logout-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.logout-actions>*{min-width:110px;padding:10px 16px;border-radius:10px;text-decoration:none;font:inherit;font-weight:700;cursor:pointer}.logout-cancel{border:1px solid #d6e0ec;background:#fff;color:#526b87}.logout-leave{border:1px solid #246bd1;background:#246bd1;color:#fff}


/* V3.42.22 — compact one-screen Target Province Settings */
.map-target-icon-only[open]{inset:4dvh auto auto 50%!important;width:min(1160px,94vw)!important;max-height:92dvh!important;overflow:hidden!important;border:1px solid #dce7f1!important;border-radius:22px!important;box-shadow:0 28px 90px rgba(16,47,88,.26)!important;background:#fff!important;padding:0!important}
.map-target-icon-only[open] summary{position:absolute;z-index:3;right:16px;top:15px;margin:0!important;width:40px!important;height:40px!important;border-radius:12px!important;color:transparent!important;font-size:0!important}.map-target-icon-only[open] summary::before{content:'×';color:#60758e;font-size:26px;line-height:1}.map-target-icon-only .target-setting-help,.map-target-icon-only .target-settings-form{margin:0!important}.target-setting-help{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:7px 20px!important;padding:16px 72px 12px 18px!important;border-top:0!important;border-bottom:1px solid #edf2f6!important;background:#fff!important}.target-setting-title{display:flex;align-items:center;gap:11px;grid-row:1/3}.target-setting-title>div{display:grid;gap:1px}.target-setting-title b{font-size:19px!important;line-height:1.45!important}.target-setting-title small{font-size:12px;color:#5d7696}.target-setting-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#edf4ff;color:#2f73d8}.target-setting-icon svg{width:23px;height:23px}.target-setting-help>span{font-size:11px;line-height:1.55;align-self:end;color:#71849a}.target-setting-legend{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;font-size:10px;color:#6f8198}.target-setting-legend>span{display:flex;align-items:center;gap:5px}.legend-box{display:grid;place-items:center;width:18px;height:18px;border-radius:5px;background:#2f73d8;color:#fff;font-style:normal;font-size:11px}.target-settings-form{padding:12px 18px 14px!important}.target-checkbox-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px 12px!important}.target-check-row{min-height:36px!important;padding:5px 9px!important;border-radius:10px!important;font-size:12px!important}.target-check-row input{width:18px!important;height:18px!important;flex:0 0 18px}.target-name{font-size:13px!important;line-height:1.4!important}.target-source-badge{font-size:9px!important;padding:3px 7px!important}.target-settings-actions{position:sticky;bottom:0;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:16px!important;margin:10px 0 0!important;padding:10px 0 0!important;background:#fff!important}.target-selected-summary{display:grid;gap:2px;font-size:12px!important;color:#365777!important}.target-selected-summary b{font-size:17px;color:#183f70}.target-selected-summary small{font-size:9px;color:#8b9caf}.target-setting-buttons{display:flex;gap:10px}.target-settings-actions button{min-width:118px!important;padding:9px 16px!important;border-radius:10px!important}.target-settings-actions .target-cancel{background:#fff!important;color:#526b87!important;border:1px solid #d6e0ec!important}
@media(max-width:900px){.map-target-icon-only[open]{inset:2dvh auto auto 50%!important;max-height:96dvh!important;overflow:auto!important}.target-setting-help{grid-template-columns:1fr!important;padding-right:66px!important}.target-setting-title{grid-row:auto}.target-setting-legend{justify-content:flex-start}.target-checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){.map-target-icon-only[open]{inset:0!important;transform:none!important;width:100vw!important;max-height:none!important;height:100dvh!important;border-radius:0!important}.target-setting-help{padding:14px 58px 10px 14px!important}.target-setting-title b{font-size:16px!important}.target-setting-help>span{display:none}.target-checkbox-grid{grid-template-columns:1fr!important}.target-settings-form{padding:10px 14px 14px!important}.target-settings-actions{align-items:stretch!important;flex-direction:column!important}.target-setting-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}.target-settings-actions button{width:100%!important}}

/* V3.42.22 — admin header/avatar and logout polish */
.admin-profile{gap:10px!important}.admin-profile b{font-size:13px!important;line-height:1.25}.admin-profile small{font-size:9px!important}.profile-actions{gap:10px!important}.profile-actions a:not(.settings-icon){font-size:10px!important}.logout-card{width:min(460px,94vw)!important;padding:26px!important}.logout-card p{font-size:13px!important;line-height:1.7!important}.logout-note{font-size:11px!important}.logout-actions{margin-top:17px!important}

/* V3.42.31 canonical target source annotations. */
.sub-province-copy{flex-wrap:wrap;column-gap:7px;row-gap:1px}
.sub-province-copy b{white-space:normal}
.sub-target-note{font-size:10px;font-weight:500;color:#386ca0;white-space:nowrap}
.sub-target-note[hidden]{display:none}

/* V3.42.33: survey type switch follows the user identity in both modules. */
.admin-profile .survey-module-switch{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;white-space:nowrap;padding:9px 12px;margin-left:6px;color:#e7f0fc;background:#ffffff12;border:1px solid #ffffff35;border-radius:9px;text-decoration:none;font-size:12px;line-height:1.5}
.admin-profile .survey-module-switch:hover{background:#ffffff24;color:#f3d36b}
.admin-profile .survey-module-switch:focus-visible{outline:2px solid #f3d36b;outline-offset:3px}
@media(max-width:420px){.admin-profile .survey-module-switch{padding:7px 9px;font-size:11px;margin-left:2px}}
