body{padding-bottom:18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.compact{padding:8px;margin:8px 0}.strong{font-weight:bold;margin-top:6px}.slim{display:inline-block;margin:0 0 0 8px;padding:8px;vertical-align:middle}.map-box{position:relative;background:#fff;z-index:10;border:1px solid #d5dde6;border-radius:14px;margin:18px 0 8px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.10)}#geo-map{height:340px;width:100%;background:#e9eef2}.map-box.full{position:fixed;inset:8px;z-index:5000;margin:0;border-radius:14px}.map-box.full #geo-map{height:calc(100vh - 74px)}.map-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:linear-gradient(180deg,#ffffff,#f7fafc);border-bottom:1px solid #e2e8f0}.map-title{font-weight:700;color:#0f172a;display:flex;align-items:center;gap:7px}.map-title i{color:#16a34a}.map-status{font-size:12px;color:#64748b;margin-top:2px}.map-main-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.map-icon-btn,.map-upload{display:inline-flex;align-items:center;gap:7px;background:#ffffff!important;color:#0f172a!important;border:1px solid #cbd5e1!important;border-radius:10px!important;padding:8px 10px!important;margin:0!important;box-shadow:none!important;font-weight:600}.map-icon-btn:hover,.map-upload:hover{background:#f1f5f9!important}.map-icon-btn i{color:#2563eb}.map-upload{cursor:pointer}.map-upload i{color:#16a34a}.map-upload input{display:none}.map-tracking-panel{display:none;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:10px 12px}.map-tracking-panel.open{display:block}.tracking-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.tracking-panel-head b{display:block;color:#0f172a}.tracking-panel-head small{display:block;color:#64748b;font-size:12px}.mini-close{background:#e2e8f0!important;color:#0f172a!important;padding:6px 10px!important;margin:0!important;border-radius:8px!important}.tracking-control-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.track-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;border-radius:12px!important;padding:10px 14px!important;margin:0!important;font-weight:700;min-width:92px}.track-btn.start{background:#16a34a!important}.track-btn.pause{background:#f59e0b!important}.track-btn.stop{background:#dc2626!important}.track-btn:disabled{opacity:.45;cursor:not-allowed}.track-color-label{display:inline-flex;align-items:center;gap:8px;border:1px solid #cbd5e1;border-radius:12px;padding:7px 9px;background:#fff;color:#334155;font-weight:600}.track-color-label input{width:34px;height:28px;border:0;background:transparent;padding:0}.tracking-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:9px}.tracking-info-grid>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:9px 10px}.tracking-info-grid small{display:block;color:#64748b;font-size:11px;margin-bottom:3px}.tracking-info-grid b{font-size:14px;color:#0f172a}.tracking-status-line{margin-top:8px;background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:10px;padding:8px 10px;font-size:13px}.tracking-status-line.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.tracking-status-line.danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.tracking-panel{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tracking-panel button{width:48px;height:48px;border-radius:50%;padding:0}.btn-danger{background:#f44336!important}.btn-warn{background:#f0ad4e!important}.btn-ok{background:#4CAF50!important}.btn-yellow{background:hsl(51,95%,45%)!important;color:#111!important}.btn-blue{background:#2196F3!important}.btn-purple{background:#9c27b0!important}.red-bg{background:#ffcccc!important}.yellow-bg{background:#ffff99!important}.blue-bg{background:#99ccff!important}.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:6000;overflow:auto}.modal-content{background:#fff;margin:40px auto;padding:20px;border-radius:8px;max-width:96%;width:950px;max-height:84vh;overflow:auto;position:relative}.modal-close{position:sticky;top:0;float:right;background:#f44336!important}.pagination button{padding:5px 9px;margin:2px}.leaflet-popup-content input,.leaflet-popup-content select{width:100%;margin:4px 0}.track-live{font-weight:bold;color:#0b6623}table button{padding:5px 8px;margin:2px}@media(max-width:720px){.grid3{grid-template-columns:1fr}#geo-map{height:300px}.tab button{padding:10px 9px;font-size:13px}table{font-size:12px}th,td{padding:6px}.map-header{align-items:flex-start;flex-direction:column}.map-main-actions{justify-content:flex-start;width:100%}.map-icon-btn span{display:none}.map-icon-btn,.map-upload{padding:8px 9px!important}.track-btn{min-width:86px;flex:1}.tracking-info-grid{grid-template-columns:repeat(2,1fr)}.slim{display:block;margin:6px 0;width:100%}}
.local-note{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:10px}.sync-box{background:#f8fafc;border:1px solid #dbeafe;border-radius:12px}.sync-box h4{margin:0 0 8px}.sync-status{margin-top:8px;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#334155;font-size:13px}.sync-box button{margin-top:6px}

/* ===== Dark mode untuk komponen khusus aplikasi (peta, modal, sync, tracking) =====
   Hanya aktif saat body.dark-mode. Tidak mengubah tampilan mode terang. */
body.dark-mode{background-color:#121212;color:#e0e0e0}
body.dark-mode .map-box{background:#1e1e1e;border-color:#333;box-shadow:0 8px 24px rgba(0,0,0,.5)}
body.dark-mode .map-header{background:linear-gradient(180deg,#262626,#1e1e1e);border-bottom-color:#333}
body.dark-mode .map-title{color:#e0e0e0}
body.dark-mode .map-status{color:#9aa4b2}
body.dark-mode #geo-map{background:#0d0d0d}
body.dark-mode .map-icon-btn,body.dark-mode .map-upload{background:#2a2a2a!important;color:#e0e0e0!important;border-color:#444!important}
body.dark-mode .map-icon-btn:hover,body.dark-mode .map-upload:hover{background:#363636!important}
body.dark-mode .map-tracking-panel{background:#1a1a1a;border-bottom-color:#333}
body.dark-mode .tracking-panel-head b{color:#e0e0e0}
body.dark-mode .tracking-panel-head small{color:#9aa4b2}
body.dark-mode .mini-close{background:#3a3a3a!important;color:#e0e0e0!important}
body.dark-mode .track-color-label{background:#2a2a2a;border-color:#444;color:#e0e0e0}
body.dark-mode .tracking-info-grid>div{background:#1e1e1e;border-color:#333}
body.dark-mode .tracking-info-grid small{color:#9aa4b2}
body.dark-mode .tracking-info-grid b{color:#e0e0e0}
body.dark-mode .modal-content{background:#1e1e1e;color:#e0e0e0}
body.dark-mode .modal-content table{color:#e0e0e0}
body.dark-mode .modal-content th{background:#333;color:#e0e0e0}
body.dark-mode .modal-content td{border-color:#444}
body.dark-mode .modal-content input,body.dark-mode .modal-content select{background:#333;color:#e0e0e0;border-color:#555}
body.dark-mode .local-note{background:#14342a;border-color:#1f5c45;color:#a7f3d0}
body.dark-mode .sync-box{background:#1a1a1a;border-color:#2a3a55}
body.dark-mode .sync-status{background:#1e1e1e;border-color:#333;color:#cbd5e1}
body.dark-mode .red-bg{background:#990000!important}
body.dark-mode .yellow-bg{background:#8a7a00!important}
body.dark-mode .blue-bg{background:#1d4e76!important}
body.dark-mode .leaflet-popup-content-wrapper,body.dark-mode .leaflet-popup-tip{background:#1e1e1e;color:#e0e0e0}
body.dark-mode .leaflet-popup-content input,body.dark-mode .leaflet-popup-content select{background:#333;color:#e0e0e0;border-color:#555}
body.dark-mode .leaflet-bar a{background:#2a2a2a;color:#e0e0e0;border-color:#444}
body.dark-mode .leaflet-bar a:hover{background:#363636}
/* Tombol toggle mengambang (jika original.css tidak memuat, ini cadangan aman) */
#darkModeToggle{position:fixed;bottom:20px;right:20px;z-index:9999;width:50px;height:50px;border:none;border-radius:50%;font-size:20px;cursor:pointer;background-color:#333;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center}
body.dark-mode #darkModeToggle{background-color:#e0e0e0;color:#333}
/* Crosshair tengah untuk penempatan placemark presisi */
.map-canvas-wrap{position:relative}
.map-crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-55%);z-index:600;
  font-size:30px;line-height:1;font-weight:900;color:#000;pointer-events:none;
  text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 6px #fff;user-select:none}
.map-box.full .map-crosshair{font-size:38px}
body.dark-mode .map-crosshair{color:#000;text-shadow:0 0 3px #fff,0 0 6px #fff}
/* Modal kecil placemark (pakai #modal yang sudah ada) */
#pmModalBox label{display:block;margin:8px 0}
#pmModalBox .pm-colors{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
#pmModalBox .pm-swatch{width:34px;height:34px;border-radius:50%;border:3px solid #fff;
  box-shadow:0 0 0 2px #cbd5e1;cursor:pointer}
#pmModalBox .pm-swatch.sel{box-shadow:0 0 0 3px #111}
.pm-group-control{position:absolute;right:8px;bottom:8px;z-index:650;background:rgba(255,255,255,.95);
  border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font-size:12px;max-height:42%;overflow:auto;
  box-shadow:0 4px 14px rgba(0,0,0,.15)}
.pm-group-control b{display:block;margin-bottom:4px}
.pm-group-control label{display:block;cursor:pointer;margin:2px 0}
body.dark-mode .pm-group-control{background:rgba(30,30,30,.95);border-color:#444;color:#e0e0e0}
/* Watermark Keterangan di atas tabel Data Pokok (transparan, tidak menutupi data) */
.ket-watermark-wrap{position:relative}
.ket-watermark{position:absolute;inset:0;display:none;align-items:center;justify-content:center;
  pointer-events:none;z-index:2;text-align:center;padding:6px;
  font-weight:800;font-size:clamp(14px,4vw,26px);letter-spacing:.5px;
  color:rgba(220,38,38,.18);text-transform:uppercase;line-height:1.15;
  text-shadow:0 1px 0 rgba(255,255,255,.4)}
.ket-watermark.show{display:flex}
.ket-watermark-wrap table{position:relative;z-index:1}
body.dark-mode .ket-watermark{color:rgba(248,113,113,.22)}
/* Pemilih bentuk ikon placemark di modal */
#pmModalBox .pm-shapes{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
#pmModalBox .pm-shape{display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border:2px solid #cbd5e1;border-radius:10px;cursor:pointer;background:#fff;
  padding:4px;box-sizing:border-box}
#pmModalBox .pm-shape svg{max-width:100%;max-height:100%}
#pmModalBox .pm-shape.sel{border-color:#111;box-shadow:0 0 0 2px #111 inset}
body.dark-mode #pmModalBox .pm-shape{background:#2a2a2a;border-color:#444}
body.dark-mode #pmModalBox .pm-shape.sel{border-color:#fff;box-shadow:0 0 0 2px #fff inset}
.pm-divicon{background:transparent;border:0}
