:root{--ink:#12352e;--muted:#64746f;--green:#158b68;--lime:#dff46a;--cream:#f6f7ef;--red:#df5b51;--line:#dce4df}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,sans-serif;color:var(--ink);background:#fff}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,6vw,90px);position:sticky;top:0;background:#ffffffee;backdrop-filter:blur(12px);z-index:10;border-bottom:1px solid #edf0ed}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-weight:800}.brand small{display:block;font-size:10px;color:var(--muted)}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--green);color:white}.topbar nav{display:flex;gap:26px}.topbar nav a{color:var(--muted);text-decoration:none;font-size:14px;font-weight:600}.button{display:inline-flex;justify-content:center;align-items:center;padding:13px 19px;border-radius:12px;text-decoration:none;font-weight:700;border:0;cursor:pointer;font:inherit}.primary{background:var(--green);color:#fff;box-shadow:0 10px 25px #158b6830}.secondary,.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.hero{min-height:620px;padding:90px clamp(20px,8vw,130px);display:grid;grid-template-columns:1.5fr .7fr;gap:70px;align-items:center;background:radial-gradient(circle at 80% 10%,#e7f4b8 0,transparent 30%),var(--cream)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800;color:var(--green)}h1{font-size:clamp(42px,5vw,72px);line-height:1.04;letter-spacing:-.055em;margin:18px 0 24px;max-width:900px}h1 em{font-style:normal;color:var(--green)}.hero p{font-size:18px;line-height:1.7;color:var(--muted);max-width:680px}.actions{display:flex;gap:12px;margin:30px 0}.trust{display:flex;gap:22px;flex-wrap:wrap;font-size:12px;font-weight:700;color:#45635b}.impact-card{background:var(--ink);color:white;border-radius:28px;padding:34px;min-height:330px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:20px 25px 0 #dff46a}.impact-card .pulse{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--ink);font-weight:800;margin-bottom:auto}.impact-card strong{font-size:26px;line-height:1.3;margin-top:10px}.impact-card p{font-size:13px;color:#b9cbc5}.section{padding:90px clamp(20px,8vw,130px)}.soft{background:var(--cream)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.section h2{font-size:clamp(30px,3vw,48px);letter-spacing:-.04em;margin:8px 0}.status{font-size:12px;padding:8px 12px;border-radius:99px;background:#edf4ef;color:var(--green);font-weight:700}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metrics article,.panel{border:1px solid var(--line);border-radius:20px;padding:24px;background:white}.metrics span,.metrics small{display:block;color:var(--muted);font-size:12px}.metrics strong{display:block;font-size:32px;margin:10px 0}.metrics .danger{border-top:4px solid var(--red)}.metrics .success{border-top:4px solid var(--green)}.insight-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;margin-top:16px}.panel-title{display:flex;justify-content:space-between}.panel h3{margin-top:0}.donut{width:210px;height:210px;border-radius:50%;margin:20px auto;background:conic-gradient(var(--red) 0 29%,#dceee7 29%);display:grid;place-items:center}.donut:after{content:"";width:140px;height:140px;border-radius:50%;background:#fff;position:absolute}.donut div{z-index:1;text-align:center}.donut strong,.donut small{display:block}.donut strong{font-size:30px}.legend{display:flex;justify-content:center;gap:20px;font-size:12px}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.red{background:var(--red)}.green{background:var(--green)}.priority ol{padding:0;list-style:none}.priority li{display:grid;grid-template-columns:120px 1fr;padding:17px 0;border-top:1px solid var(--line)}.priority li span{color:var(--muted);font-size:13px}.assessment{background:white;padding:28px;border-radius:22px;border:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.form-grid label{font-size:12px;font-weight:700}.form-grid select{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.submit{margin-top:24px;width:100%}.result{margin-top:18px;padding:24px;border-radius:18px;background:#fff;border-left:5px solid var(--green)}.result.risk{border-color:var(--red)}.map-placeholder{height:420px;border-radius:26px;background:linear-gradient(135deg,#d9eee7,#eef3d4);display:grid;place-items:center;text-align:center;padding:30px}.map-placeholder div{max-width:520px}.map-placeholder span{font-size:52px}.dark{background:var(--ink);color:white}.dark .eyebrow{color:var(--lime)}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:35px 0}.method-grid article{padding:22px;border:1px solid #ffffff25;border-radius:16px}.method-grid strong,.method-grid span{display:block}.method-grid strong{font-size:26px}.method-grid span{font-size:12px;color:#b9cbc5;margin-top:8px}.disclaimer{color:#b9cbc5;max-width:850px;line-height:1.6;font-size:13px}footer{display:flex;justify-content:space-between;padding:28px clamp(20px,8vw,130px);font-size:12px}@media(max-width:900px){.topbar nav,.topbar>.ghost{display:none}.hero{grid-template-columns:1fr;padding-top:55px}.metrics,.method-grid{grid-template-columns:repeat(2,1fr)}.insight-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.hero{padding-bottom:65px}.impact-card{box-shadow:10px 12px 0 var(--lime)}.metrics,.method-grid,.form-grid{grid-template-columns:1fr}.section-head,footer{align-items:flex-start;gap:16px;flex-direction:column}.actions{flex-direction:column}}
:root{--map-safe:#2ca77d;--map-watch:#f0a83a;--map-high:#df5b51}.map-filters{display:flex;gap:10px}.map-filters label{font-size:11px;font-weight:700;color:#64746f}.map-filters select{display:block;margin-top:5px;padding:10px;border:1px solid #dce4df;border-radius:10px;background:#fff}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.map-layout #bogorMap{height:560px;border-radius:22px;overflow:hidden;border:1px solid #dce4df;z-index:1}.map-summary{border:1px solid #dce4df;border-radius:22px;padding:24px}.map-summary h3{font-size:22px}.map-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-kpis p{background:#f6f7ef;padding:14px;border-radius:12px;margin:0}.map-kpis strong,.map-kpis span{display:block}.map-kpis strong{font-size:20px}.map-kpis span{font-size:10px;color:#64746f}.map-legend{display:grid;gap:8px;margin:22px 0;font-size:12px}.map-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px}.safe-dot{background:var(--map-safe)}.watch-dot{background:var(--map-watch)}.high-dot{background:var(--map-high)}.map-note,.map-source{font-size:11px;line-height:1.55;color:#64746f}#topVillages{padding-left:20px;font-size:11px}#topVillages li{padding:4px}.leaflet-popup-content{font-family:Manrope,sans-serif;line-height:1.5}@media(max-width:900px){.map-layout{grid-template-columns:1fr}.map-layout #bogorMap{height:480px}}@media(max-width:560px){.map-filters{width:100%;flex-direction:column}.map-filters select{width:100%}.map-layout #bogorMap{height:390px}}
.district-label{background:rgba(255,255,255,.8);border:0;box-shadow:0 1px 5px #0002;border-radius:5px;color:#172b27;font-family:Manrope,sans-serif;font-size:10px;font-weight:800;padding:3px 6px}.district-label:before{display:none}.leaflet-control-layers{border:0!important;border-radius:12px!important;box-shadow:0 7px 22px #12352e26!important;font-family:Manrope,sans-serif;font-size:11px;padding:5px}.leaflet-control-layers-overlays label{padding:3px 2px}
.spatial-analysis{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.analysis-card,.ranking-panel{border:1px solid #dce4df;border-radius:20px;background:#fff;padding:24px}.analysis-title,.ranking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.analysis-card h3,.ranking-panel h3{font-size:22px;margin:7px 0}.analysis-badge{padding:7px 10px;border-radius:99px;background:#edf4ef;color:#158b68;font-size:11px;font-weight:800}.moran-value{display:flex;align-items:baseline;gap:14px;margin:20px 0}.moran-value strong{font-size:44px}.moran-value span,.analysis-card p,.ranking-head p{font-size:11px;line-height:1.55;color:#64746f}.lisa-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.lisa-kpis span{border:1px solid #e4eae6;border-radius:10px;padding:10px;font-size:12px}.lisa-kpis i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px}.lisa-hh{background:#c93838}.lisa-hl{background:#ef9a45}.lisa-lh{background:#6f9bd4}.lisa-ll{background:#3f82bd}.ranking-panel{margin-top:16px}.ranking-head p{max-width:500px;margin:0}.table-wrap{overflow:auto;margin-top:18px}.ranking-panel table{width:100%;border-collapse:collapse;font-size:12px}.ranking-panel th{text-align:left;color:#64746f;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.ranking-panel th,.ranking-panel td{padding:12px 10px;border-bottom:1px solid #e7ece9}.ranking-panel tbody tr:hover{background:#f6f7ef}.lisa-pill{display:inline-block;padding:4px 7px;border-radius:7px;color:#fff;font-size:10px;font-weight:800}.lisa-ns{background:#9ba9a4}.rank-number{font-weight:800;color:#158b68}@media(max-width:800px){.spatial-analysis{grid-template-columns:1fr}.ranking-head{flex-direction:column}}
.app-page{display:none;animation:pageIn .28s ease}.app-page.active{display:block}@keyframes pageIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.topbar nav a.active{color:#12352e}.topbar nav a.active:after{content:"";display:block;height:2px;background:#158b68;margin-top:6px}.section-intro{max-width:720px;color:#64746f;line-height:1.6}.lisa-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}.lisa-map-layout #lisaMap{height:560px;border:1px solid #dce4df;border-radius:22px;overflow:hidden;z-index:1}.lisa-guide{border:1px solid #dce4df;border-radius:22px;padding:24px;background:#fff}.lisa-guide h3{font-size:22px}.lisa-guide p{font-size:12px;line-height:1.6;color:#64746f}.spatial-page>.spatial-analysis{margin-top:22px}@media(max-width:900px){.lisa-map-layout{grid-template-columns:1fr}.lisa-map-layout #lisaMap{height:460px}}
.header-tools,.form-actions{display:flex;align-items:center;gap:12px}.header-tools label{font-size:11px;font-weight:700;color:#64746f}.header-tools select{margin-left:8px;padding:9px 28px 9px 10px;border:1px solid #dce4df;border-radius:9px;background:#fff}.form-actions{margin-top:24px}.form-actions .submit{margin-top:0;flex:1}.form-actions .secondary{min-width:150px}.recommendations{margin-top:20px;padding:18px;border-radius:13px;background:#f4f8f5}.recommendations h4{margin:0 0 10px}.recommendations ol{margin:0;padding-left:20px}.recommendations li{padding:4px 0;line-height:1.5}.map-reset{align-self:end;padding:10px 13px;font-size:11px;background:#12352e;color:#fff}.district-comparison,.lisa-chart-panel{margin-top:18px;border:1px solid #dce4df;border-radius:20px;padding:22px;background:#fff}.district-comparison h3,.lisa-chart-panel h3{margin:6px 0 18px}.bar-chart,.lisa-bar-chart{display:grid;gap:10px}.bar-row,.lisa-bar-row{display:grid;grid-template-columns:150px minmax(120px,1fr) 55px;gap:12px;align-items:center;font-size:11px}.bar-row>div,.lisa-bar-row>div{height:10px;background:#edf1ee;border-radius:99px;overflow:hidden}.bar-row i,.lisa-bar-row i{display:block;height:100%;border-radius:99px}.bar-row i{background:linear-gradient(90deg,#2ca77d,#ef9a45,#df5b51)}.detail-btn{border:1px solid #158b68;background:#fff;color:#158b68;border-radius:8px;padding:7px 9px;font-weight:700;white-space:nowrap;cursor:pointer}.modal{position:fixed;inset:0;background:#0c211caa;z-index:9999;display:grid;place-items:center;padding:20px}.modal[hidden]{display:none}.modal-card{background:#fff;border-radius:22px;padding:28px;max-width:680px;width:100%;max-height:85vh;overflow:auto;position:relative}.modal-close{position:absolute;right:20px;top:18px;border:0;background:#edf4ef;border-radius:8px;padding:8px 11px;cursor:pointer}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:20px 0}.detail-grid p{background:#f6f7ef;border-radius:12px;padding:14px;margin:0}.detail-grid b,.detail-grid span{display:block}.detail-grid b{font-size:20px}.detail-grid span{font-size:10px;color:#64746f;margin-top:5px}.modal-note{font-size:11px;color:#64746f}.lisa-guide .lisa-ns{background:#9ba9a4}@media(max-width:700px){.header-tools,.form-actions{align-items:stretch;flex-direction:column}.header-tools select{margin-left:0}.detail-grid{grid-template-columns:1fr 1fr}.bar-row,.lisa-bar-row{grid-template-columns:110px 1fr 48px}}
.decision-support{background:#f0f6f2}.decision-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.decision-flow article{background:#fff;border:1px solid #d4e0dc;border-radius:16px;padding:20px}.decision-flow article>b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#16936f;color:#fff}.decision-flow h3{margin:14px 0 7px}.decision-flow p,.decision-note{color:#58706c;line-height:1.6}.decision-note{background:#fff;border-left:4px solid #16936f;padding:15px 18px;margin-top:18px}.report-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 10px}@media(max-width:900px){.decision-flow{grid-template-columns:1fr 1fr}}@media(max-width:560px){.decision-flow{grid-template-columns:1fr}}
.report-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px;padding:22px 24px;border:1px solid #cddbd7;border-radius:16px;background:#f0f6f2}.report-panel h3{margin:6px 0}.report-panel p{margin:0;color:#58706c}.report-panel .report-actions{margin:0;flex-shrink:0}@media(max-width:760px){.report-panel{align-items:flex-start;flex-direction:column}.report-panel .report-actions{width:100%}}

/* Navigasi bawah dan tata letak sentuh untuk tablet/mobile */
.mobile-bottom-nav{display:none}
@media(max-width:1024px){
 body{padding-bottom:84px}.topbar{height:66px;padding:0 22px;position:sticky}.topbar nav,.topbar>.ghost{display:none}.brand-mark{width:36px;height:36px}.brand{font-size:14px}.brand small{font-size:9px}
 .mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(94%,680px);height:66px;padding:6px 8px;background:#fffffff2;backdrop-filter:blur(18px);border:1px solid #dce4df;border-radius:20px;box-shadow:0 12px 38px #12352e35;z-index:9000}
 .mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:14px;color:#71807b;text-decoration:none;font-size:10px;font-weight:700;min-width:0}.mobile-bottom-nav i{font-style:normal;font-size:21px;line-height:1}.mobile-bottom-nav a.active{background:#e8f4ef;color:#0d765a}.mobile-bottom-nav a.active i{transform:translateY(-1px)}
 .section{padding:48px clamp(22px,5vw,48px)}.section-head{align-items:flex-start;gap:18px;margin-bottom:24px}.section h2{font-size:clamp(30px,5.5vw,42px);line-height:1.08}.section-intro{font-size:14px;margin:8px 0 0}.hero{min-height:auto;padding:58px clamp(24px,6vw,58px);grid-template-columns:1fr;gap:42px}.hero h1{font-size:clamp(42px,8vw,62px)}.impact-card{min-height:270px}.metrics{grid-template-columns:repeat(2,1fr)}.metrics strong{font-size:28px}.insight-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,1fr)}
 .map-filters{width:100%;display:grid;grid-template-columns:1fr 1fr;align-items:end}.map-filters .map-reset{grid-column:1/-1;width:100%;min-height:42px}.map-filters select{width:100%;min-height:42px}.map-layout,.lisa-map-layout{grid-template-columns:1fr}.map-layout #bogorMap,.lisa-map-layout #lisaMap{height:min(62vh,520px);min-height:430px;border-radius:18px}.map-summary,.lisa-guide{padding:20px;border-radius:18px}.leaflet-control-layers{max-height:240px;overflow:auto}.district-label{font-size:8px;padding:2px 4px}.district-comparison,.lisa-chart-panel{padding:18px}.spatial-analysis{grid-template-columns:1fr}.analysis-card,.ranking-panel{padding:20px}.ranking-head{flex-direction:column}.table-wrap{margin-left:-4px;margin-right:-4px;padding-bottom:8px}.ranking-panel table{min-width:1000px}.report-panel{align-items:flex-start;flex-direction:column}.report-panel .report-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.report-panel .button{padding:12px 10px;text-align:center}.decision-flow{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}footer{display:none}
}
@media(max-width:600px){
 body{padding-bottom:78px}.topbar{height:60px;padding:0 16px}.brand small{max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-bottom-nav{bottom:max(7px,env(safe-area-inset-bottom));width:calc(100% - 20px);height:62px;border-radius:18px}.mobile-bottom-nav span{font-size:9px}.mobile-bottom-nav i{font-size:19px}
 .section{padding:34px 16px}.section-head{flex-direction:column;gap:14px;margin-bottom:20px}.section h2{font-size:30px;letter-spacing:-.035em}.eyebrow{font-size:9px}.hero{padding:44px 18px 54px}.hero h1{font-size:42px}.hero p{font-size:15px}.actions{flex-direction:column}.impact-card{padding:26px;box-shadow:9px 10px 0 var(--lime)}.impact-card strong{font-size:23px}.trust{gap:10px 16px}
 .metrics{grid-template-columns:1fr 1fr;gap:9px}.metrics article,.panel{padding:16px;border-radius:16px}.metrics strong{font-size:23px}.metrics span,.metrics small{font-size:10px}.insight-grid{gap:10px}.donut{width:180px;height:180px}.donut:after{width:120px;height:120px}.priority li{grid-template-columns:90px 1fr}.form-grid{grid-template-columns:1fr;gap:13px}.assessment{padding:16px;border-radius:17px}.form-actions{align-items:stretch;flex-direction:column}.form-actions .secondary{min-width:0}.result{padding:18px}.recommendations{padding:14px}
 .map-filters{grid-template-columns:1fr 1fr;gap:8px}.map-filters label{font-size:10px}.map-layout #bogorMap,.lisa-map-layout #lisaMap{height:58vh;min-height:370px;max-height:450px;border-radius:15px}.map-summary,.lisa-guide{padding:17px}.map-summary h3,.lisa-guide h3{font-size:19px}.map-kpis p{padding:11px}.map-kpis strong{font-size:17px}.district-label{font-size:7px;padding:1px 3px}.leaflet-popup-content{font-size:11px;min-width:130px}.district-comparison,.lisa-chart-panel{padding:16px;border-radius:16px}.bar-row,.lisa-bar-row{grid-template-columns:92px 1fr 42px;gap:7px;font-size:9px}.analysis-card,.ranking-panel{padding:16px;border-radius:16px}.analysis-card h3,.ranking-panel h3{font-size:19px}.moran-value strong{font-size:38px}.lisa-kpis{grid-template-columns:1fr 1fr}.ranking-head p{font-size:10px}.report-panel{padding:17px;gap:14px}.report-panel .report-actions{grid-template-columns:1fr}.report-panel .button{width:100%}.decision-flow{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr}.modal{padding:10px}.modal-card{padding:22px 16px;border-radius:18px}.modal-close{right:12px;top:12px}
 .ranking-panel .table-wrap{overflow:visible;margin:14px 0 0;padding:0}.ranking-panel table,.ranking-panel tbody,.ranking-panel tr,.ranking-panel td{display:block;width:100%}.ranking-panel table{min-width:0}.ranking-panel thead{display:none}.ranking-panel tbody{display:grid;gap:12px}.ranking-panel tbody tr{padding:14px;border:1px solid #dce4df;border-radius:14px;background:#fff;box-shadow:0 5px 15px #12352e0a}.ranking-panel tbody tr:hover{background:#fff}.ranking-panel td{display:grid;grid-template-columns:105px minmax(0,1fr);gap:10px;align-items:start;padding:7px 0;border:0;font-size:11px;overflow-wrap:anywhere}.ranking-panel td:before{font-size:9px;font-weight:800;color:#75847f;text-transform:uppercase;letter-spacing:.04em}.ranking-panel td:nth-child(1):before{content:'Peringkat'}.ranking-panel td:nth-child(2):before{content:'Kelurahan'}.ranking-panel td:nth-child(3):before{content:'Kecamatan'}.ranking-panel td:nth-child(4):before{content:'Tingkat risiko'}.ranking-panel td:nth-child(5):before{content:'Keluarga berisiko'}.ranking-panel td:nth-child(6):before{content:'Klaster LISA'}.ranking-panel td:nth-child(7):before{content:'Faktor dominan'}.ranking-panel td:nth-child(8):before{content:'Skor prioritas'}.ranking-panel td:nth-child(9):before{content:'Informasi'}.ranking-panel .factor-list{margin:0;padding-left:16px}.ranking-panel .detail-btn{width:100%;min-height:38px}.ranking-panel .rank-number{font-size:16px}
}
