@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root{--green:#0b5040;--ink:#122f2a;--muted:#678078;--pale:#f5f8f5;--border:#e3eae5;--accent:#e5f7ad;--shadow:0 12px 36px rgba(24,62,47,.055);--rad:18px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--pale);color:var(--ink);font:14px/1.6 'DM Sans',system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{text-decoration:none;color:inherit}.container{width:min(1330px,calc(100% - 64px));margin:0 auto}.masthead{height:88px;position:sticky;top:0;z-index:1400;background:#fff;box-shadow:0 2px 14px rgba(0,0,0,.035)}.mast-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap}.brand-seal{width:54px;height:54px;border-radius:13px;background:#f1f6f0;display:grid;place-items:center;overflow:hidden;padding:5px}.brand-seal img{max-width:100%;max-height:100%;object-fit:contain}.brand-name{display:grid;gap:2px}.brand-name b{font:800 20px/1.1 'Plus Jakarta Sans',sans-serif;letter-spacing:-1px;color:var(--green)}.brand-name b span{font-weight:600}.brand-name small{font-size:10px;letter-spacing:.8px;color:#82928b;font-weight:700;text-transform:uppercase}.topnav{display:flex;align-items:center;gap:28px;margin:auto}.topnav a{font-size:13px;font-weight:700;color:#5d756c;transition:color .2s}.topnav a:hover{color:#068766}.header-actions{display:flex;align-items:center;gap:15px;white-space:nowrap}.live-indicator{color:#547268;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.pulse{width:9px;height:9px;display:inline-block;background:#a8b3ae;border-radius:50%;box-shadow:0 0 0 4px #f1f4f1}.live-indicator.online .pulse{background:#18af73;box-shadow:0 0 0 4px #dbf7e9}.live-indicator.offline .pulse{background:#e86e56;box-shadow:0 0 0 4px #ffe9e4}.live-indicator.stale .pulse{background:#f0a22f;box-shadow:0 0 0 4px #fff2de}.refresh-button{display:flex;align-items:center;gap:8px;border:1px solid #dce6e0;background:#fff;border-radius:12px;padding:9px 14px;color:var(--green);font-weight:700}.refresh-button:hover{background:#eef8f1}.hero{min-height:370px;position:relative;background:#174d3d url('hero.jpg') center 46%/cover no-repeat;color:#fff}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,36,27,.92),rgba(5,50,32,.8) 39%,rgba(13,59,43,.12) 94%),linear-gradient(0deg,rgba(4,41,28,.4),transparent 50%)}.hero-inner{position:relative;z-index:1;padding-top:65px;padding-bottom:32px}.hero-kicker{font-size:11px;letter-spacing:2.5px;font-weight:800;display:flex;align-items:center;gap:10px;color:#d6eeb8}.hero-kicker-dot{width:7px;height:7px;background:#d7fb90;border-radius:50%}.hero h1{font:800 clamp(37px,5.1vw,61px)/1.11 'Plus Jakarta Sans',sans-serif;letter-spacing:-2.1px;margin:15px 0}.hero h1 em{font-style:normal;color:#deefa6}.hero p{font-size:14px;max-width:640px;line-height:1.9;color:#e4eee8;margin:12px 0 23px}.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #ffffff30;padding-top:19px;color:#e7f3e4;font-weight:600;font-size:12px}.hero-status{display:flex;align-items:center;gap:9px}.hero-status i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#dfff97}.workspace{padding:34px 0 76px}.filters-wrap{background:white;border:1px solid var(--border);border-radius:var(--rad);padding:25px 28px 18px;box-shadow:var(--shadow);margin-bottom:38px}.filter-heading,.section-head{display:flex;justify-content:space-between;align-items:center;gap:24px}.filter-heading{margin-bottom:22px}.eyebrow{font-size:10px!important;letter-spacing:1.9px;font-weight:800;color:#2d9470!important;margin:0 0 5px!important}.filter-heading h2,.section-head h2{font:800 23px/1.28 'Plus Jakarta Sans',sans-serif;letter-spacing:-.7px;margin:0}.scope-flag{font-size:11px;background:#eaf6ed;color:var(--green);padding:8px 13px;border-radius:25px}.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:end;gap:13px}.filter-grid label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#60786c;min-width:0}.filter-grid select,.filter-grid input{height:41px;min-width:0;width:100%;background:#fafdfa;border:1px solid #dae7df;border-radius:10px;padding:0 11px;color:#345649;outline:none}.filter-grid select:focus,.filter-grid input:focus{border-color:#2dab81;box-shadow:0 0 0 3px #ddf4e6}.filter-buttons{display:flex;gap:7px}.button{height:41px;border-radius:10px;border:0;font-size:12px;font-weight:800;padding:0 15px}.button-main{background:var(--green);color:#fff}.button-main:hover{background:#0e795b}.button-light{background:#eaf0eb;color:#557065}.filter-bottom{margin-top:18px;display:flex;justify-content:space-between;gap:12px;color:#799087;font-size:11px}.refresh-caption{color:#337e64;font-weight:700}.section{margin:0 0 36px}.section-head{margin:0 0 20px}.section-head p:not(.eyebrow){margin:6px 0 0;color:#799086;font-size:12px}.updated-tag{display:grid;gap:3px;text-align:right;background:#eaf2e9;border-radius:10px;padding:10px 14px}.updated-tag span{font-size:9px;color:#82a08c;font-weight:800;letter-spacing:1.3px}.updated-tag strong{font-size:12px;color:#31775a}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi{border:1px solid var(--border);background:white;border-radius:16px;padding:22px 23px 21px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:174px}.kpi-icon{height:32px;width:32px;display:grid;place-items:center;border-radius:9px;font-size:23px;margin-bottom:15px}.kpi-icon.green{background:#e5f6e9;color:#168355}.kpi-icon.blue{background:#e5f3fb;color:#287ea8}.kpi-icon.orange{background:#fff2da;color:#b9781a}.kpi-icon.teal{background:#e0f7f2;color:#168f79}.kpi-icon.lime{background:#ebf3d4;color:#547a1a}.kpi-icon.yellow{background:#fff5cc;color:#ad8425}.kpi-icon.rose{background:#ffeae5;color:#b76149}.kpi-icon.purple{background:#eae9ff;color:#7370a9}.kpi small{font-size:12px;color:#73887e;font-weight:700}.kpi strong{display:block;font:800 clamp(23px,2.5vw,33px)/1.25 'Plus Jakarta Sans',sans-serif;color:var(--ink);letter-spacing:-1px;margin:5px 0 3px;overflow-wrap:anywhere}.kpi span{font-size:11px;color:#93a59c}.kpi.accent-1{background:#edf9df}.kpi.accent-2{background:#fff8e8}.kpi.accent-3{background:#fdf0ea}.chart-legend{display:flex;gap:18px;font-weight:700;font-size:11px;color:#60776f}.lg:before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;background:#18a57b}.lg.tanam:before{background:#e4aa45}.lg.panen:before{background:#e87758}.chart-card,.map-card,.table-card{background:white;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.chart-host{height:330px;padding:15px 18px 5px}.chart-host svg{width:100%;height:100%;overflow:visible}.chart-host svg text{fill:#82958d;font:11px 'DM Sans',sans-serif}.chart-host svg .gridline{stroke:#edf2ed;stroke-width:1}.chart-host svg .chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-footer{display:flex;justify-content:space-between;color:#91a297;border-top:1px solid #edf2ec;padding:11px 24px;font-size:10px}.map-meta,.table-count{background:#e6f1e9;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:800;color:#33765a}.map-host{height:460px;position:relative;background:#e5eee6}.map-host .leaflet-control-attribution{font-size:10px}.map-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#548374;font-weight:700}.map-foot{padding:13px 19px;display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#768d81}.map-dot{display:inline-block;height:9px;width:9px;background:#258e5d;border-radius:2px;margin-right:5px}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:770px}thead{background:#edf5ef}thead th{text-transform:uppercase;letter-spacing:.75px;font-size:10px;color:#617e6f;text-align:left;padding:15px 17px;white-space:nowrap}tbody td{padding:14px 17px;border-bottom:1px solid #eff3f0;color:#577165;font-size:12px}tbody tr:hover{background:#f9fdf9}tbody td.name{font-weight:800;color:#193c31}.empty-td{text-align:center!important;color:#98a99f;padding:40px}.tag-yes{font-size:10px;color:#15895e;font-weight:800;background:#e1f7e8;border-radius:10px;padding:5px 8px}.tag-no{font-size:10px;color:#9f9f9f;background:#f2f2f2;border-radius:10px;padding:5px 8px}.table-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;color:#7d9186;font-size:12px}.table-controls>div{display:flex;gap:8px}.page-button{border:1px solid #dbe8df;border-radius:8px;padding:8px 12px;color:#2a7053;background:#fff;font-weight:700}.page-button:not(:disabled):hover{background:#eaf7ec}.about-section{display:flex;align-items:center;gap:23px;padding:29px 35px;border-radius:16px;background:#0e5041;color:white}.about-icon{width:58px;height:58px;border:1px solid #ffffff40;border-radius:14px;font-size:28px;display:grid;place-items:center;flex:0 0 auto}.about-section h2{font:800 21px 'Plus Jakarta Sans',sans-serif;margin:0 0 5px}.about-section p{color:#cde6d7;max-width:820px;margin:0;font-size:12px;line-height:1.8}.about-tag{margin-left:auto;white-space:nowrap;text-align:right;color:#d4f6a8;font-size:12px;letter-spacing:1.2px;font-weight:800}.site-footer{background:#fff;border-top:1px solid var(--border)}.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:27px 0;color:#8b9e91;font-size:11px}.footer-inner>div:first-child{display:grid;gap:1px}.footer-inner b{color:#1c5a47;letter-spacing:1px}.alert{border:1px solid #f2cb92;background:#fff7e9;color:#85531d;border-radius:12px;padding:14px 18px;margin-bottom:22px;font-weight:600}.alert.error{border-color:#f0b2a5;background:#fff0ed;color:#a24936}.alert.success{border-color:#b4dec4;background:#eefaf1;color:#256947}.empty{height:100%;display:grid;place-items:center;color:#8fa098}.map-warning{color:#a66931;font-weight:700}.svg-fallback{height:100%;width:100%}.svg-fallback path{fill:#66b895;stroke:#0c6a50;stroke-width:.9;fill-opacity:.35}.svg-fallback path:hover{fill:#f9be62;cursor:pointer}.leaflet-popup-content{font:12px/1.8 'DM Sans',sans-serif}.leaflet-popup-content strong{font-size:14px;color:#0a5740}.loader{opacity:.6;pointer-events:none}@media(max-width:1190px){.topnav{gap:13px}.topnav a{font-size:12px}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-buttons{justify-content:flex-end}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:900px){.container{width:min(100% - 36px,1330px)}.topnav{display:none}.header-actions{margin-left:auto}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:340px}.scope-flag{display:none}.about-tag{display:none}.chart-host{height:280px}}@media(max-width:600px){.masthead{height:74px}.brand-seal{width:43px;height:43px}.brand-name b{font-size:16px}.brand-name small{font-size:8px}.refresh-button{padding:8px}.refresh-button span{display:none}.live-indicator{font-size:10px}.hero-inner{padding-top:49px}.hero h1{font-size:38px}.hero p{font-size:12px}.hero-bottom{align-items:flex-start;flex-direction:column;gap:8px}.workspace{padding-top:20px}.filters-wrap{padding:18px}.filter-heading h2,.section-head h2{font-size:20px}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.filter-grid label:first-child,.filter-grid label:nth-child(2),.filter-grid label:nth-child(3),.filter-buttons{grid-column:1/-1}.filter-buttons .button{flex:1}.filter-bottom{flex-direction:column;gap:3px}.section-head{align-items:flex-start;gap:10px}.updated-tag{display:none}.chart-legend{flex-wrap:wrap;gap:8px}.kpi{padding:16px;min-height:150px}.kpi strong{font-size:25px}.map-host{height:365px}.map-foot,.chart-footer{flex-direction:column;gap:5px}.about-section{padding:22px;gap:12px}.about-icon{display:none}.about-section h2{font-size:18px}.footer-inner{flex-direction:column;align-items:flex-start;gap:10px}}

.data-note{font-size:11px;color:#718f7e;margin:12px 0 0;padding-left:3px}
