/* V17.2.1 — daftar tanah diselaraskan dengan tampilan kendaraan */
.network-banner{display:none;position:sticky;top:0;z-index:80;padding:8px 14px;text-align:center;font-weight:800;background:#fff3cd;color:#7c5a00;border-bottom:1px solid #f2d675}.network-banner.show{display:block}.network-banner.online{background:#dcfce7;color:#166534;border-color:#86efac}
.modal-backdrop{z-index:2000}.modal{max-height:calc(100dvh - 24px);overflow:hidden}.modal-body{position:relative;overflow:auto;overscroll-behavior:contain}.modal-foot{position:sticky;bottom:0;z-index:25;background:#fff;border-top:1px solid #dbe3ec}.leaflet-container{z-index:1!important}.modal .land-map{height:360px;max-height:46vh;margin-top:10px}.modal .leaflet-control{z-index:5!important}.modal-plot{width:min(1180px,96vw)}
.land-table th,.land-table td{vertical-align:top}.land-table .land-doc-links{display:flex;gap:5px;flex-wrap:wrap}.land-table .land-doc-links a{text-decoration:none}.location-text{min-width:150px}.coordinate-text{white-space:nowrap}.land-id-auto{background:#eef6ff;color:#315b86;font-weight:700}.map-toolbar{display:flex;gap:8px;flex-wrap:wrap}.offline-note{padding:9px 11px;border-radius:9px;background:#eff6ff;color:#1e3a5f;margin-top:9px}.region-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.region-card{border:1px solid #dbe3ec;border-radius:12px;padding:12px;background:#f8fafc}.region-card .field{margin-bottom:8px}.region-card-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.user-status-active{color:#166534;font-weight:800}.user-status-inactive{color:#991b1b;font-weight:800}
.vehicle-table .berangkas-col{min-width:120px;font-weight:800}.mobile-land-cards{display:none}

/* Daftar tanah desktop mengikuti pola tabel kendaraan */
.land-data-panel .panel-head{align-items:center}
.land-data-toolbar{flex:1;min-width:0}
.land-total-info{font-size:12px;font-weight:700;white-space:nowrap;padding:0 4px}
.land-table{min-width:1760px;table-layout:fixed}
.land-table th:nth-child(1){width:125px}
.land-table th:nth-child(2){width:230px}
.land-table th:nth-child(3){width:250px}
.land-table th:nth-child(4){width:165px}
.land-table th:nth-child(5){width:235px}
.land-table th:nth-child(6){width:85px}
.land-table th:nth-child(7){width:85px}
.land-table th:nth-child(8){width:165px}
.land-table th:nth-child(9){width:155px}
.land-table th:nth-child(10){width:185px}
.land-table th:nth-child(11){width:130px;text-align:center}
.land-table th:nth-child(12){width:115px;text-align:center}
.land-table td{line-height:1.35;overflow-wrap:anywhere}
.land-table td:nth-child(11),.land-table td:nth-child(12){text-align:center}
.land-table .land-doc-links,.land-table .icon-actions{justify-content:center}
@media(max-width:900px){
  .region-grid{grid-template-columns:1fr 1fr}.modal-plot{width:98vw}.modal .land-map{height:320px;max-height:42vh}
}
@media(max-width:720px){
  .content{padding:12px}.panel-head{align-items:flex-start;gap:10px;flex-wrap:wrap}.panel-head>.btn{width:100%}.toolbar{display:grid!important;grid-template-columns:1fr!important;width:100%}.toolbar .input,.toolbar .select,.toolbar .btn{width:100%!important;min-width:0!important}.land-total-info{width:100%;padding:2px 0}.pagination{gap:6px;justify-content:center;flex-wrap:wrap}
  .land-table-wrap{overflow:visible}.land-table{display:block}.land-table thead{display:none}.land-table tbody{display:grid;gap:12px}.land-table tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid #d8e2ec;border-radius:14px;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,.07);overflow:hidden}.land-table td{display:block;padding:9px 11px;border:0;border-bottom:1px dashed #e3eaf1;min-width:0;overflow-wrap:anywhere}.land-table td::before{content:attr(data-label);display:block;font-size:11px;font-weight:900;color:#64748b;text-transform:uppercase;margin-bottom:3px}.land-table td.land-main,.land-table td.land-actions{grid-column:1/-1}.land-table td.land-actions{border-bottom:0}.land-table .icon-actions{justify-content:flex-start}.coordinate-text{white-space:normal}.region-grid{grid-template-columns:1fr}.modal{width:98vw!important;max-height:96dvh}.modal-body{padding:12px}.modal-foot{padding:10px}.form-grid{grid-template-columns:1fr!important}.span-2,.span-3{grid-column:auto!important}.modal .land-map{height:280px;max-height:38vh}
  .vehicle-table{min-width:1450px}.vehicle-table .berangkas-col{position:sticky;left:0;background:#fff;z-index:2}.topbar{padding:12px}.topbar h2{font-size:20px}
}

/* V17.3 — pencarian, form peta terpadu, dan pengaturan wilayah */
.filter-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;flex:1}
.filter-toolbar .input{min-width:280px;flex:1 1 320px}.filter-toolbar .select{min-width:220px;flex:1 1 240px}.filter-toolbar .btn{flex:0 0 auto}
.search-status{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 4px;color:#51657a;font-weight:700;white-space:nowrap}
.mini-spinner{display:inline-block;width:17px;height:17px;border:3px solid #d6e3ef;border-top-color:#2f6dad;border-radius:50%;animation:v173spin .75s linear infinite}
@keyframes v173spin{to{transform:rotate(360deg)}}
.land-editor-map{height:420px!important;max-height:50vh!important;border:1px solid #b9cadb;border-radius:12px;overflow:hidden;background:#eaf1f6}
.map-field-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.map-field-actions{display:flex;gap:8px;flex-wrap:wrap}
.map-help{margin-top:7px;padding:8px 10px;border-radius:9px;background:#eef6ff;color:#294d73;font-size:13px}
.settings-map-panel{margin:16px 0;border:1px solid #d6e1ec;border-radius:14px;background:#f8fbfe;overflow:hidden}.settings-map-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px;border-bottom:1px solid #d6e1ec}.settings-map-toolbar .input{flex:1 1 340px;min-width:220px}.settings-map{height:460px;background:#eaf1f6}.region-search-results{display:grid;gap:7px;padding:0 12px 12px}.region-search-result{width:100%;text-align:left;padding:10px 12px;border:1px solid #cbd9e6;border-radius:10px;background:#fff;cursor:pointer}.region-search-result:hover{border-color:#2f6dad;background:#eef6ff}.region-search-result b{display:block;margin-bottom:3px}.region-search-result small{color:#65788d}
.region-grid-v173{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.region-card-v173{border:1px solid #cddae6;border-radius:13px;padding:13px;background:#fff}.region-card-v173.active{border:2px solid #2f6dad;box-shadow:0 0 0 3px rgba(47,109,173,.12)}.region-coordinate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.region-bound-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.settings-map-note{padding:9px 12px;color:#52667b;font-size:13px;background:#fff;border-top:1px solid #d6e1ec}
.table-loading-row td{padding:28px!important;text-align:center!important}.table-loading-box{display:flex;justify-content:center;align-items:center;gap:10px;font-weight:800;color:#52667b}
@media(max-width:900px){.region-grid-v173{grid-template-columns:1fr}.settings-map{height:380px}.region-coordinate-grid{grid-template-columns:1fr 1fr}.filter-toolbar .input,.filter-toolbar .select{min-width:0;width:100%;flex-basis:100%}}
@media(max-width:600px){.land-editor-map{height:330px!important;max-height:42vh!important}.settings-map{height:330px}.region-coordinate-grid,.region-bound-grid{grid-template-columns:1fr}.map-field-actions,.settings-map-toolbar{display:grid;grid-template-columns:1fr;width:100%}.map-field-actions .btn,.settings-map-toolbar .btn,.settings-map-toolbar .input{width:100%}.search-status{width:100%;justify-content:center}.filter-toolbar{display:grid;grid-template-columns:1fr;width:100%}.filter-toolbar .btn{width:100%}}

/* V17.4 — Form lokasi tanah stabil dan jelas */
.land-modal-backdrop-v174{cursor:default}
.land-editor-modal-v174{width:min(1220px,calc(100vw - 28px));max-width:1220px;height:min(94vh,980px);overflow:hidden}
.land-editor-modal-v174 .modal-body{overflow:auto;overscroll-behavior:contain;padding-bottom:18px}
.land-editor-modal-v174 .modal-foot{position:sticky;bottom:0;z-index:30;background:#fff;border-top:1px solid #dbe4ee}
.land-location-panel-v174{border:1px solid #cbd9e8;border-radius:14px;padding:14px;background:#f8fbff;min-width:0}
.land-location-title-v174{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.land-location-title-v174 label{font-size:16px;font-weight:800;color:#173a60}
.land-location-search-v174{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:8px}
.land-location-results-v174{display:grid;gap:6px;max-height:210px;overflow:auto;margin-bottom:8px}
.land-location-result-v174{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;border:1px solid #d2dfec;background:#fff;border-radius:9px;padding:10px 12px;text-align:left;cursor:pointer;color:#1d3552}
.land-location-result-v174:hover,.land-location-result-v174:focus{border-color:#326da9;background:#eef6ff;outline:none}
.land-location-result-v174 span{font-size:12px;color:#62748a;line-height:1.35}
.land-location-empty-v174{padding:10px 12px;border-radius:8px;background:#eef3f8;color:#53667c;font-size:13px}
.land-location-status-v174{margin-top:9px;padding:9px 11px;border-radius:8px;background:#eef3f8;color:#53667c;font-size:13px;line-height:1.35}
.land-location-status-v174.success{background:#e8f7ee;color:#17653b}
.land-location-status-v174.warning{background:#fff5df;color:#8b5a00}
.land-location-status-v174.loading{background:#e9f2ff;color:#245f9d}
.land-editor-modal-v174 .land-editor-map{height:420px;min-height:320px;border-radius:12px;overflow:hidden}
.land-form-v174 input,.land-form-v174 textarea,.land-form-v174 select{touch-action:manipulation}
@media(max-width:760px){
  .land-editor-modal-v174{width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:none;border-radius:12px}
  .land-editor-modal-v174 .modal-head{padding:12px 14px}
  .land-editor-modal-v174 .modal-body{padding:12px}
  .land-location-title-v174{display:grid}
  .land-location-title-v174 .btn{width:100%}
  .land-location-search-v174{grid-template-columns:1fr}
  .land-location-search-v174 .btn{width:100%}
  .land-editor-modal-v174 .land-editor-map{height:330px;min-height:280px}
}

/* V17.5 — kartu data HP dan modal tanah yang benar-benar dapat digulir */
.mobile-record-cards{display:none}
.mobile-record-card{border:1px solid #d6e1ec;border-radius:15px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,.08);overflow:hidden}
.mobile-record-card-head{padding:13px 14px;background:linear-gradient(135deg,#edf5ff,#f8fbff);border-bottom:1px solid #dbe5ef}
.mobile-record-card-title{font-size:16px;font-weight:900;color:#142f4d;line-height:1.3;overflow-wrap:anywhere}
.mobile-record-card-subtitle{margin-top:4px;color:#63768a;font-size:12px;font-weight:700;overflow-wrap:anywhere}
.mobile-record-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.mobile-record-field{min-width:0;padding:10px 12px;border-bottom:1px solid #e8eef4;border-right:1px solid #e8eef4}
.mobile-record-field:nth-child(even){border-right:0}
.mobile-record-field.full{grid-column:1/-1;border-right:0}
.mobile-record-label{font-size:10px;line-height:1.2;font-weight:900;letter-spacing:.03em;color:#6b7d90;text-transform:uppercase;margin-bottom:4px}
.mobile-record-value{font-size:13px;line-height:1.4;color:#1c2f43;overflow-wrap:anywhere;word-break:break-word}
.mobile-record-value .nowrap,.mobile-record-value.nowrap{white-space:normal!important}
.mobile-record-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 13px;background:#f8fafc}
.mobile-record-actions .action-icons,.mobile-record-actions .icon-actions{justify-content:flex-start;gap:8px;flex-wrap:wrap}
.mobile-record-empty{padding:24px;text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:14px;background:#fff}

/* Modal tanah memakai layout flex agar area isi selalu dapat digulir. */
.land-modal-backdrop-v174{overflow:hidden;overscroll-behavior:none}
.land-editor-modal-v174{display:flex!important;flex-direction:column!important;min-height:0!important}
.land-editor-modal-v174 .modal-head{position:relative!important;flex:0 0 auto!important;top:auto!important}
.land-editor-modal-v174 .modal-body{display:block!important;flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain!important;touch-action:pan-y!important;scrollbar-gutter:stable}
.land-editor-modal-v174 .modal-foot{position:relative!important;flex:0 0 auto!important;bottom:auto!important}
.land-editor-modal-v174 .land-form-v174{padding-bottom:24px}
html.land-editor-open,body.land-editor-open{overflow:hidden!important;height:100%!important}

@media(max-width:760px){
  .land-table-wrap,#vehicleTable>.table-wrap{display:none!important}
  .mobile-record-cards{display:grid;gap:12px;padding:10px}
  .land-data-panel .mobile-record-cards{padding-top:12px}
  .mobile-record-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mobile-record-field.full-mobile{grid-column:1/-1;border-right:0}
  .land-modal-backdrop-v174{align-items:stretch!important;justify-content:stretch!important;padding:0!important}
  .land-editor-modal-v174{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:100dvh!important;border-radius:0!important;margin:0!important}
  .land-editor-modal-v174 .modal-head{padding:12px 14px!important}
  .land-editor-modal-v174 .modal-body{padding:12px!important;padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
  .land-editor-modal-v174 .modal-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom))!important}
  .land-editor-modal-v174 .land-editor-map{height:280px!important;min-height:250px!important;max-height:none!important}
}

@media(max-width:430px){
  .mobile-record-card-grid{grid-template-columns:1fr}
  .mobile-record-field,.mobile-record-field:nth-child(even){border-right:0}
  .mobile-record-field.full{grid-column:auto}
  .mobile-record-actions .icon-btn{width:42px;height:42px}
}

/* V17.6 — seluruh modal/form dapat digulir pada desktop, tablet, dan HP */
html.modal-open-v176,body.modal-open-v176{overflow:hidden!important;height:100%!important;overscroll-behavior:none!important}
.modal-backdrop.universal-modal-backdrop-v176{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
.modal.universal-scroll-modal-v176{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  overflow:hidden!important;
  max-height:calc(100dvh - 24px)!important;
}
.modal.universal-scroll-modal-v176>.modal-head{
  position:relative!important;
  top:auto!important;
  flex:0 0 auto!important;
  min-height:0!important;
}
.modal.universal-scroll-modal-v176>.modal-body{
  display:block!important;
  position:relative!important;
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  scrollbar-gutter:stable;
  padding-bottom:max(22px,env(safe-area-inset-bottom))!important;
}
.modal.universal-scroll-modal-v176>.modal-foot{
  position:relative!important;
  bottom:auto!important;
  flex:0 0 auto!important;
  min-height:0!important;
  background:#fff!important;
  z-index:40!important;
}
.modal.universal-scroll-modal-v176>.modal-body form,
.modal.universal-scroll-modal-v176>.modal-body .form-grid,
.modal.universal-scroll-modal-v176>.modal-body .letter-grid{
  min-height:0!important;
}
.modal.universal-scroll-modal-v176>.modal-body input,
.modal.universal-scroll-modal-v176>.modal-body select,
.modal.universal-scroll-modal-v176>.modal-body textarea,
.modal.universal-scroll-modal-v176>.modal-body button{
  touch-action:manipulation;
}
/* Peta tetap interaktif; area di luar peta tetap dapat dipakai untuk menggulir form. */
.modal.universal-scroll-modal-v176>.modal-body .leaflet-container{
  touch-action:auto!important;
}

@media(max-width:760px){
  .modal-backdrop.universal-modal-backdrop-v176{
    align-items:stretch!important;
    justify-content:stretch!important;
    padding:0!important;
  }
  .modal.universal-scroll-modal-v176,
  .modal.universal-scroll-modal-v176.modal-sm,
  .modal.universal-scroll-modal-v176.modal-xl,
  .modal.universal-scroll-modal-v176.modal-plot{
    width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    min-height:0!important;
    max-height:100dvh!important;
    margin:0!important;
    border-radius:0!important;
  }
  .modal.universal-scroll-modal-v176>.modal-head{
    padding:12px 14px!important;
  }
  .modal.universal-scroll-modal-v176>.modal-body{
    padding:12px!important;
    padding-bottom:max(28px,calc(env(safe-area-inset-bottom) + 18px))!important;
  }
  .modal.universal-scroll-modal-v176>.modal-foot{
    padding:10px 12px max(10px,env(safe-area-inset-bottom))!important;
    flex-wrap:wrap!important;
  }
  .modal.universal-scroll-modal-v176>.modal-foot .btn{
    min-height:44px;
  }
  .modal.universal-scroll-modal-v176>.modal-body .form-grid,
  .modal.universal-scroll-modal-v176>.modal-body .letter-grid{
    grid-template-columns:1fr!important;
  }
  .modal.universal-scroll-modal-v176>.modal-body .span-2,
  .modal.universal-scroll-modal-v176>.modal-body .span-3,
  .modal.universal-scroll-modal-v176>.modal-body .letter-span-2,
  .modal.universal-scroll-modal-v176>.modal-body .letter-span-3,
  .modal.universal-scroll-modal-v176>.modal-body .letter-span-4{
    grid-column:1!important;
  }
}

@media(max-width:430px){
  .modal.universal-scroll-modal-v176>.modal-foot{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .modal.universal-scroll-modal-v176>.modal-foot .btn{
    width:100%!important;
  }
  .modal.universal-scroll-modal-v176>.modal-foot .btn:only-child{
    grid-column:1/-1;
  }
}
