/* Isolated KKN public impact module — no global KKN style overrides. */
.kdi-section,.kdi-page{--kdi-red:#b71928;--kdi-ink:#24333e;--kdi-muted:#697883;--kdi-line:#e3e8eb;--kdi-bg:#f7f9fa;color:var(--kdi-ink);font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
.kdi-section{padding:64px 0;background:#fff}
.kdi-page{min-height:100vh;background:var(--kdi-bg);padding-bottom:60px}
.kdi-shell{width:min(1200px,calc(100% - 36px));margin:auto}
.kdi-topbar{background:#fff;border-bottom:1px solid var(--kdi-line);padding:14px 0}.kdi-topbar .kdi-shell{display:flex;gap:18px;align-items:center;justify-content:space-between;color:var(--kdi-muted);font-size:13px}.kdi-brand{font-weight:800;color:var(--kdi-red)!important;text-decoration:none}
.kdi-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:0 0 25px;padding-top:30px}.kdi-section .kdi-heading{padding-top:0}.kdi-heading h1,.kdi-heading h2{color:var(--kdi-ink);font-weight:850;font-size:clamp(24px,3vw,36px);margin:6px 0 10px;letter-spacing:-.025em}.kdi-heading p{font-size:14px;color:var(--kdi-muted);line-height:1.7;margin:0;max-width:760px}
.kdi-eyebrow{font-size:11px;color:var(--kdi-red);font-weight:900;letter-spacing:.1em}.kdi-page-link,.kdi-open a{font-size:13px;color:var(--kdi-red)!important;font-weight:800;text-decoration:none}.kdi-page-link{white-space:nowrap}.kdi-open{text-align:right;padding:14px 4px}
.kdi-inner{background:#fff}.kdi-page main.kdi-shell{padding-top:10px}
.kdi-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:19px;border:1px solid var(--kdi-line);border-radius:15px;background:#fff;margin-bottom:20px;box-shadow:0 8px 25px rgba(26,42,52,.035)}
.kdi-filters label{min-width:0;display:flex;flex-direction:column;gap:7px;color:#455662;font-size:12px;font-weight:750}
.kdi-filters input,.kdi-filters select{width:100%;min-height:42px;border:1px solid #cfd8de;border-radius:9px;background:#fff;font-size:13px;color:var(--kdi-ink);padding:7px 10px}
.kdi-filters input:focus,.kdi-filters select:focus{outline:2px solid #f6c7cb;border-color:var(--kdi-red)}
.kdi-actions{grid-column:1/-1;display:flex;align-items:center;gap:15px;justify-content:flex-end}
.kdi-actions button{background:var(--kdi-red);border:0;color:#fff;min-height:40px;padding:9px 22px;border-radius:8px;font-weight:800;cursor:pointer}.kdi-actions a{font-size:13px;font-weight:750;text-decoration:none;color:var(--kdi-muted)}
.kdi-summary{display:flex;gap:13px;flex-wrap:wrap;align-items:center;margin:12px 0 16px;font-size:13px;color:var(--kdi-ink)}.kdi-summary span{padding:9px 12px;border-radius:8px;border:1px solid var(--kdi-line);background:var(--kdi-bg)}.kdi-summary b{font-size:18px;margin-right:4px}.kdi-summary .kdi-muted{color:var(--kdi-muted);background:#fff;font-size:12px}
.kdi-table-wrap{max-width:100%;overflow-x:auto;background:#fff;border:1px solid var(--kdi-line);border-radius:14px;box-shadow:0 8px 25px rgba(26,42,52,.035)}
.kdi-table{width:100%;min-width:1000px;border-collapse:separate;border-spacing:0;text-align:left;font-size:13px}
.kdi-table thead{background:#24333e;color:#fff}.kdi-table th{padding:14px 13px;font-size:12px;vertical-align:middle;font-weight:800}.kdi-table td{vertical-align:top;border-bottom:1px solid #e9edf0;padding:14px 12px;color:var(--kdi-ink);line-height:1.5}.kdi-table tbody tr:hover{background:#fcfdfd}.kdi-table tbody tr:last-child td{border-bottom:0}.kdi-table th:first-child{border-radius:13px 0 0 0}.kdi-table th:last-child{border-radius:0 13px 0 0}
.kdi-image-col{width:110px}.kdi-image-col img{width:105px;height:78px;object-fit:cover;border-radius:8px}.kdi-no-photo{display:flex;width:105px;height:75px;align-items:center;justify-content:center;text-align:center;background:#f0f3f5;border:1px solid #e2e7eb;color:#80909a;font-size:11px;border-radius:8px;padding:8px}
.kdi-sub{display:inline-block;color:var(--kdi-muted);font-size:12px;line-height:1.5;margin-top:3px}.kdi-outcome{font-size:12px;line-height:1.6;margin:7px 0 4px}.kdi-pill,.kdi-sdg{display:inline-block;padding:4px 7px;border-radius:7px;background:#fff1f1;color:#9b1724;font-size:11px;font-weight:750;margin:1px 3px 3px 0}.kdi-sdg{background:#f0f6fa;color:#214f70}.kdi-measure{display:block;color:#356a49;margin:3px 0;font-size:11px}
.kdi-links{min-width:135px}.kdi-links a{display:block;color:var(--kdi-red);font-weight:800;font-size:12px;text-decoration:none;margin:0 0 8px}.kdi-links a:hover,.kdi-page-link:hover,.kdi-open a:hover{text-decoration:underline}.kdi-empty{text-align:center;padding:40px 15px;color:var(--kdi-muted);font-size:13px}.kdi-loading{background:#f8fafb;padding:28px;border:1px dashed var(--kdi-line);border-radius:10px;color:var(--kdi-muted);font-size:13px}
.kdi-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:15px;flex-wrap:wrap;font-size:13px}.kdi-pagination a{color:var(--kdi-red);font-weight:800}.kdi-pagination span{color:var(--kdi-muted)}
.kdi-disclaimer{font-size:12px;line-height:1.65;color:#52636d;border-left:3px solid #b71928;padding:10px 14px;background:#fffaf9;margin:12px 0 16px}
.kdi-map-block{background:#fff;border:1px solid var(--kdi-line);border-radius:14px;margin-bottom:22px;padding:16px}.kdi-map-heading{display:flex;gap:15px;justify-content:space-between;align-items:baseline}.kdi-map-heading h2{font-size:17px;font-weight:850}.kdi-map-heading p,.kdi-map-note{font-size:12px;color:var(--kdi-muted);line-height:1.6}.kdi-map{height:365px;border-radius:10px;background:#edf2f4;overflow:hidden}.kdi-map-fallback{padding:30px;font-size:13px;color:var(--kdi-muted)}
@media(max-width:1050px){.kdi-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.kdi-heading{align-items:flex-start;flex-direction:column}.kdi-map-heading{flex-direction:column;gap:0}}
@media(max-width:650px){.kdi-section{padding:38px 0}.kdi-shell{width:calc(100% - 24px)}.kdi-heading h1,.kdi-heading h2{font-size:23px}.kdi-filters{grid-template-columns:1fr 1fr;padding:13px;gap:10px}.kdi-filters label:nth-child(3){grid-column:1/-1}.kdi-actions{justify-content:stretch}.kdi-actions button{flex:1}.kdi-map{height:280px}}
@media(max-width:420px){.kdi-filters{grid-template-columns:1fr}.kdi-filters label:nth-child(3){grid-column:auto}.kdi-actions{grid-column:1}.kdi-summary{display:grid}}


/* KKN_IMPACT_UI_FINISH_V1_1 */
.kdi-section .kdi-btn,.kdi-page .kdi-btn{box-sizing:border-box;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;max-width:100%;padding:10px 17px;border:1px solid transparent;border-radius:10px;font:700 13px/1.3 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;text-align:center;text-decoration:none!important;white-space:normal;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.kdi-section .kdi-btn--primary,.kdi-page .kdi-btn--primary{background:#ad1e2b;color:#fff!important;border-color:#ad1e2b;box-shadow:0 2px 5px rgba(96,16,25,.12)}
.kdi-section .kdi-btn--primary:hover,.kdi-page .kdi-btn--primary:hover{background:#8e1422;border-color:#8e1422}
.kdi-section .kdi-btn--secondary,.kdi-page .kdi-btn--secondary{background:#fff;color:#34434e!important;border-color:#cbd4da}
.kdi-section .kdi-btn--secondary:hover,.kdi-page .kdi-btn--secondary:hover{background:#f6f8f9;border-color:#9fabba}
.kdi-section .kdi-btn:focus-visible,.kdi-page .kdi-btn:focus-visible{outline:3px solid #f1aab2;outline-offset:2px}
.kdi-section .kdi-filters,.kdi-page .kdi-filters{gap:14px;padding:20px;border-color:#e1e6ea;border-radius:14px}
.kdi-section .kdi-filters label,.kdi-page .kdi-filters label{font-size:12px;line-height:1.4;gap:7px}
.kdi-section .kdi-filters select,.kdi-section .kdi-filters input,.kdi-page .kdi-filters select,.kdi-page .kdi-filters input{box-sizing:border-box;min-height:43px;border-radius:9px;border-color:#cbd4da;background:#fff;font-size:13px}
.kdi-section .kdi-actions,.kdi-page .kdi-actions{gap:10px;justify-content:flex-end;align-items:center;margin-top:2px}
.kdi-section .kdi-open,.kdi-page .kdi-open{padding:18px 0 4px}
.kdi-section .kdi-open a,.kdi-page .kdi-open a{display:inline-flex;gap:8px;align-items:center;color:#a51b29!important;font-weight:750;text-decoration:none}
.kdi-section .kdi-open a:hover,.kdi-page .kdi-open a:hover{text-decoration:underline}
.kdi-section .kdi-page-link,.kdi-page .kdi-page-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:750;line-height:1.4}
.kdi-section .kdi-page-link:focus-visible,.kdi-page .kdi-page-link:focus-visible,.kdi-section .kdi-open a:focus-visible,.kdi-page .kdi-open a:focus-visible{outline:3px solid #f1aab2;outline-offset:3px;border-radius:4px}
.kdi-page .kdi-heading .kdi-btn--back{flex-shrink:0}
.kdi-page .kdi-pagination--polished a,.kdi-page .kdi-pagination--polished span,.kdi-section .kdi-pagination--polished a,.kdi-section .kdi-pagination--polished span{padding:8px 10px;border-radius:8px;line-height:1.4}
.kdi-page .kdi-pagination--polished a,.kdi-section .kdi-pagination--polished a{border:1px solid #d5dde3;text-decoration:none;background:#fff}
.kdi-page .kdi-pagination--polished a:hover,.kdi-section .kdi-pagination--polished a:hover{border-color:#ad1e2b;background:#fff7f8}
@media(max-width:650px){.kdi-section .kdi-filters,.kdi-page .kdi-filters{padding:14px;gap:12px}.kdi-section .kdi-actions,.kdi-page .kdi-actions{justify-content:stretch}.kdi-section .kdi-actions .kdi-btn,.kdi-page .kdi-actions .kdi-btn{flex:1;min-width:0}.kdi-page .kdi-heading .kdi-btn--back{align-self:flex-start}.kdi-section .kdi-open,.kdi-page .kdi-open{text-align:left}}
@media(max-width:420px){.kdi-section .kdi-actions,.kdi-page .kdi-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.kdi-section .kdi-actions .kdi-btn,.kdi-page .kdi-actions .kdi-btn{width:100%;padding:10px 8px}}
@media(prefers-reduced-motion:reduce){.kdi-section .kdi-btn,.kdi-page .kdi-btn{transition:none}}

/* KKN_IMPACT_MAP_CSS_FIX_V1_2 — scoped Leaflet CSS rescue rules.
 * Prevent global AdminLTE/Bootstrap/app.css from sizing or positioning map tiles.
 * If upstream Leaflet stylesheet is blocked, provide enough layout primitives to
 * keep the map panes, controls and tiles positioned correctly. */
#kdi-map.leaflet-container{position:relative;overflow:hidden;outline:0;isolation:isolate;touch-action:pan-x pan-y;cursor:grab}
#kdi-map.leaflet-container img{max-width:none!important;max-height:none!important;min-width:0!important;min-height:0!important;width:auto;height:auto;box-sizing:content-box}
#kdi-map .leaflet-pane,#kdi-map .leaflet-tile,#kdi-map .leaflet-marker-icon,#kdi-map .leaflet-marker-shadow,#kdi-map .leaflet-tile-container,#kdi-map .leaflet-pane>svg,#kdi-map .leaflet-pane>canvas,#kdi-map .leaflet-zoom-box,#kdi-map .leaflet-image-layer{position:absolute;left:0;top:0}
#kdi-map .leaflet-pane{z-index:400}#kdi-map .leaflet-tile-pane{z-index:200}#kdi-map .leaflet-overlay-pane{z-index:400}#kdi-map .leaflet-shadow-pane{z-index:500}#kdi-map .leaflet-marker-pane{z-index:600}#kdi-map .leaflet-tooltip-pane{z-index:650}#kdi-map .leaflet-popup-pane{z-index:700}
#kdi-map .leaflet-tile{width:256px;height:256px;max-width:none!important;max-height:none!important;visibility:hidden;user-select:none;-webkit-user-select:none;pointer-events:none}
#kdi-map .leaflet-tile-loaded{visibility:inherit}#kdi-map .leaflet-tile-container{pointer-events:none}
#kdi-map .leaflet-control{position:relative;z-index:800;pointer-events:auto}#kdi-map .leaflet-control-container{position:relative;z-index:800}#kdi-map .leaflet-top,#kdi-map .leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}#kdi-map .leaflet-top{top:0}#kdi-map .leaflet-bottom{bottom:0}#kdi-map .leaflet-left{left:0}#kdi-map .leaflet-right{right:0}#kdi-map .leaflet-left .leaflet-control{float:left;clear:both;margin-left:10px}#kdi-map .leaflet-right .leaflet-control{float:right;clear:both;margin-right:10px}#kdi-map .leaflet-top .leaflet-control{margin-top:10px}#kdi-map .leaflet-bottom .leaflet-control{margin-bottom:10px}
#kdi-map .leaflet-control-zoom{border:2px solid rgba(0,0,0,.15);border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.3)}#kdi-map .leaflet-control-zoom a{display:block;width:30px;height:30px;text-align:center;line-height:30px;color:#222;text-decoration:none!important;background:#fff;font-size:20px;border-bottom:1px solid #ddd}#kdi-map .leaflet-control-zoom a:last-child{border-bottom:0}#kdi-map .leaflet-control-attribution{padding:1px 6px;background:rgba(255,255,255,.83);font:11px/1.4 Arial,sans-serif;color:#444}
#kdi-map .leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}#kdi-map .leaflet-popup-content-wrapper{background:#fff;border-radius:10px;box-shadow:0 3px 14px rgba(0,0,0,.35)}#kdi-map .leaflet-popup-content{margin:14px 18px;line-height:1.45;text-align:left;min-width:150px;max-width:260px}#kdi-map .leaflet-popup-content p{margin:8px 0}#kdi-map .leaflet-popup-tip-container{position:absolute;left:50%;margin-left:-20px;width:40px;height:20px;overflow:hidden}#kdi-map .leaflet-popup-tip{width:17px;height:17px;background:#fff;transform:translate(11px,-8px) rotate(45deg);box-shadow:0 3px 14px rgba(0,0,0,.25)}#kdi-map .leaflet-popup-close-button{position:absolute;top:5px;right:7px;display:block;color:#666;font-size:21px;text-decoration:none!important}
#kdi-map .leaflet-interactive{cursor:pointer}#kdi-map .leaflet-grab{cursor:grab}#kdi-map .leaflet-dragging .leaflet-grab{cursor:grabbing}
#kdi-map .kdi-pin{border:0;background:transparent}#kdi-map .kdi-pin-dot{width:23px;height:23px;display:block;border-radius:50%;border:4px solid #fff;box-sizing:border-box;background:#b71928;box-shadow:0 2px 6px rgba(40,25,32,.4)}
.kdi-page .kdi-map-status{margin:10px 0 0;padding:8px 12px;border-radius:8px;background:#f3f6f8;font-size:12px;line-height:1.5;color:#50616c}
@media(max-width:650px){#kdi-map .leaflet-control-attribution{font-size:10px}}

/* KKN_IMPACT_GEO_UI_V1_3 scoped to public impact forms and map. */
.kdi-page .kdi-filters,.kdi-section .kdi-filters{grid-template-columns:repeat(4,minmax(0,1fr));}
.kdi-page .kdi-filters select:disabled,.kdi-section .kdi-filters select:disabled{background:#f2f4f6;color:#86929b;cursor:not-allowed}
.kdi-page .kdi-filters label,.kdi-section .kdi-filters label{min-width:0}
#kdi-map .kdi-pin-dot{display:flex;align-items:center;justify-content:center;color:#fff;font:700 11px/1 system-ui}
#kdi-map .kdi-map-card{border-top:1px solid #e3e8eb;padding:8px 0;font-size:12px;line-height:1.55}
#kdi-map .kdi-map-card:first-of-type{margin-top:6px}
#kdi-map .kdi-map-card b,#kdi-map .kdi-map-card small{display:block}
#kdi-map .kdi-map-card small{color:#667887}
#kdi-map .kdi-map-card a{color:#a61929;font-weight:700}
@media(max-width:1080px){.kdi-page .kdi-filters,.kdi-section .kdi-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.kdi-page .kdi-filters,.kdi-section .kdi-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.kdi-page .kdi-filters,.kdi-section .kdi-filters{grid-template-columns:minmax(0,1fr)}}

