/* DCKS 1.1.0 — desktop/mobile và bố cục đáp ứng.
   Tệp được hợp nhất theo đúng thứ tự cascade của bản gốc. */

/* ===== SOURCE: ui-mobile.css ===== */
/* DCKS 1.0 — giao diện mobile. */
:root{--dcks-mobile-nav-h:62px;--dcks-mobile-top-h:58px}

/* Scrollbar thống nhất, mảnh và không tạo khoảng trống cạnh panel. */
#left-panel .lpanel-body,#right-panel .rpanel-body,#map-dock,#mob-more-sheet,#gsearch-panel .gsp-inner,
.dcks-runtime-body,#dp-layers,#dp-stats,#dp-intersect,#dp-planning,#dp-supply,#dp-export,#dp-admin{
  scrollbar-width:thin;scrollbar-color:rgba(98,128,170,.46) transparent;scrollbar-gutter:auto!important
}
#left-panel .lpanel-body::-webkit-scrollbar,#right-panel .rpanel-body::-webkit-scrollbar,#map-dock::-webkit-scrollbar,
#mob-more-sheet::-webkit-scrollbar,#gsearch-panel .gsp-inner::-webkit-scrollbar,.dcks-runtime-body::-webkit-scrollbar,
#dp-layers::-webkit-scrollbar,#dp-stats::-webkit-scrollbar,#dp-intersect::-webkit-scrollbar,#dp-planning::-webkit-scrollbar,
#dp-supply::-webkit-scrollbar,#dp-export::-webkit-scrollbar,#dp-admin::-webkit-scrollbar{width:5px;height:5px}
#left-panel .lpanel-body::-webkit-scrollbar-thumb,#right-panel .rpanel-body::-webkit-scrollbar-thumb,#map-dock::-webkit-scrollbar-thumb,
#mob-more-sheet::-webkit-scrollbar-thumb,#gsearch-panel .gsp-inner::-webkit-scrollbar-thumb,.dcks-runtime-body::-webkit-scrollbar-thumb,
#dp-layers::-webkit-scrollbar-thumb,#dp-stats::-webkit-scrollbar-thumb,#dp-intersect::-webkit-scrollbar-thumb,#dp-planning::-webkit-scrollbar-thumb,
#dp-supply::-webkit-scrollbar-thumb,#dp-export::-webkit-scrollbar-thumb,#dp-admin::-webkit-scrollbar-thumb{
  background:rgba(98,128,170,.46);border-radius:99px;border:1px solid transparent;background-clip:padding-box
}

@media(max-width:1024px){
  body.is-mobile{--mob-page:#f3f6fb;--mob-card:#fff;--mob-ink:#16263e;--mob-muted:#687992;--mob-line:#dce5ef;--mob-blue:#246bfd}

  /* 1. Mọi cụm công cụ đều đóng khi mở trang; bấm mới hiện. */
  body.is-mobile:not(.mobile-tools-open) #maptool-wrap #maptool-bar,
  body.is-mobile #maptool-wrap.collapsed #maptool-bar{opacity:0!important;pointer-events:none!important;max-width:0!important;padding-left:0!important;padding-right:0!important;border-width:0!important;overflow:hidden!important;transform:translateX(8px)!important}
  body.is-mobile.mobile-tools-open #maptool-wrap:not(.collapsed) #maptool-bar{opacity:1!important;pointer-events:auto!important;max-width:calc(100vw - 64px)!important;transform:none!important;border-width:1px!important;padding:3px!important}
  body.is-mobile:not(.mobile-actions-open) #gps-fab,
  body.is-mobile:not(.mobile-actions-open) #basemap-fab,
  body.is-mobile:not(.mobile-actions-open) #dock-fab{opacity:0!important;pointer-events:none!important;transform:translateY(8px) scale(.9)!important}

  /* 2. Thanh điều hướng: bỏ mảng xanh rộng, chỉ dùng chỉ báo nhỏ. */
  body.is-mobile #mob-bottomnav{
    left:0!important;right:0!important;bottom:0!important;height:var(--dcks-mobile-nav-h)!important;
    border-radius:0!important;padding:4px max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))!important;
    box-shadow:0 -5px 18px rgba(20,48,88,.12)!important;border:0!important;border-top:1px solid var(--mob-line)!important
  }
  body.is-mobile .mbn-item{position:relative!important;border-radius:9px!important;padding:4px 1px!important;gap:1px!important;background:transparent!important;font-size:8px!important}
  body.is-mobile .mbn-item.active{background:transparent!important;color:var(--mob-blue)!important}
  body.is-mobile .mbn-item.active::after{content:"";position:absolute;left:50%;bottom:1px;width:18px;height:3px;border-radius:99px;background:var(--mob-blue);transform:translateX(-50%)}
  body.is-mobile .mbn-item .mbn-ic{width:21px!important;height:21px!important}
  body.is-mobile .mbn-item .mbn-ic svg{width:19px!important;height:19px!important}

  /* 3. Tra cứu dạng sheet thấp, gọn, không chiếm quá nửa màn hình. */
  body.is-mobile #gsearch-panel{
    position:fixed!important;left:0!important;right:0!important;top:auto!important;bottom:var(--dcks-mobile-nav-h)!important;
    width:100vw!important;max-height:0!important;border-radius:16px 16px 0 0!important;border-left:0!important;border-right:0!important;border-bottom:0!important;
    background:#fff!important;color:var(--mob-ink)!important;box-shadow:0 -12px 36px rgba(21,49,88,.22)!important
  }
  body.is-mobile #gsearch-panel.open{max-height:min(58dvh,520px)!important;overflow:hidden!important}
  body.is-mobile #gsearch-panel .gsp-inner{padding:0 10px 8px!important;overflow-y:auto!important;max-height:min(58dvh,520px)!important}
  body.is-mobile .gsp-head-mobile{padding:9px 2px 7px!important}
  body.is-mobile .gsp-head-mobile b{font-size:13px!important}.gsp-head-mobile small{font-size:8px!important}
  body.is-mobile .gsp-head-mobile button{width:29px!important;height:29px!important;border-radius:8px!important}
  body.is-mobile .gsp-tabs{margin:6px 0!important;padding:3px!important;border-radius:9px!important;gap:3px!important}
  body.is-mobile .gsp-tabs button{height:29px!important;border-radius:7px!important;font-size:9px!important}
  body.is-mobile .gsp-mode-card .gsp-mode-icon,body.is-mobile .gsp-mode-card small{display:none!important}
  body.is-mobile .gsp-input-row{padding:3px!important;margin-bottom:5px!important;border-radius:10px!important}
  body.is-mobile .gsp-input-row .btn{min-height:31px!important;height:31px!important;padding:3px 9px!important}
  body.is-mobile .gsp-input{height:31px!important;min-height:31px!important;font-size:11px!important}
  body.is-mobile .gsp-place-actions{margin:0 0 4px!important;font-size:8.5px!important}
  body.is-mobile .gsp-source-line{margin:3px 0!important}.gsp-source-badge{font-size:8px!important}
  body.is-mobile .gsp-results{max-height:170px!important;overflow-y:auto!important}
  body.is-mobile .place-result{padding:7px 8px!important;border-radius:8px!important}.place-result b{font-size:10.5px!important}.place-result small{font-size:8.5px!important;margin-top:1px!important}
  body.is-mobile .place-action-card{padding:7px!important;margin:4px 0!important;border-radius:9px!important}

  /* 4. Form thêm/sửa Quy hoạch đồng nhất giao diện mobile. */
  body.is-mobile #modal-planning{align-items:flex-end!important;padding:0!important;--bg1:#fff;--bg2:#f8fafd;--bg3:#eef3f8;--text:#172640;--text2:#40516c;--text3:#6d7d93;--border:#dce5ef;--border2:#ccd8e7}
  body.is-mobile #modal-planning .modal{
    width:100vw!important;max-width:none!important;height:min(88dvh,760px)!important;max-height:none!important;margin:0!important;
    border-radius:18px 18px 0 0!important;background:#fff!important;color:var(--mob-ink)!important;border:1px solid var(--mob-line)!important;box-shadow:0 -18px 50px rgba(20,48,88,.24)!important
  }
  body.is-mobile #modal-planning .modal-hdr{margin:0!important;padding:12px 13px 9px!important;background:#fff!important;border-bottom:1px solid #e5ebf3!important}
  body.is-mobile #modal-planning .modal-title{font-size:14px!important;color:var(--mob-ink)!important}
  body.is-mobile #planning-modal-body{padding:9px 11px!important;background:#f7f9fc!important}
  body.is-mobile #planning-modal-body .fg{margin-bottom:8px!important;gap:3px!important}
  body.is-mobile #planning-modal-body .fg label{font-size:9px!important;color:#53647d!important}
  body.is-mobile #planning-modal-body input,body.is-mobile #planning-modal-body select,body.is-mobile #planning-modal-body textarea{
    min-height:36px!important;padding:7px 9px!important;border-radius:9px!important;background:#fff!important;color:var(--mob-ink)!important;border:1px solid #d7e1ed!important;font-size:10.5px!important
  }
  body.is-mobile #planning-modal-body textarea{min-height:62px!important}
  body.is-mobile #modal-planning .modal-ftr{padding:8px 10px max(8px,env(safe-area-inset-bottom))!important;background:#fff!important;border-top:1px solid #e5ebf3!important;gap:6px!important}
  body.is-mobile #modal-planning .modal-ftr .btn{min-height:36px!important;flex:1!important}

  /* 5. Chẩn đoán dạng bảng compact, cùng nền sáng. */
  body.is-mobile #dcks-runtime-modal{align-items:flex-end!important;padding:0!important;--bg1:#fff;--bg2:#f8fafd;--bg3:#eef3f8;--text:#172640;--text2:#40516c;--text3:#6d7d93;--border:#dce5ef}
  body.is-mobile .dcks-runtime-shell{width:100vw!important;height:min(78dvh,680px)!important;max-height:none!important;margin:0!important;border-radius:18px 18px 0 0!important;background:#fff!important;color:var(--mob-ink)!important}
  body.is-mobile .dcks-runtime-shell .modal-hdr{padding:11px 12px 8px!important;margin:0!important;border-bottom:1px solid #e5ebf3!important}
  body.is-mobile .dcks-runtime-body{min-height:0!important;padding:8px 10px!important;background:#f7f9fc!important}
  body.is-mobile .dcks-runtime-summary{padding:8px 9px!important;margin-bottom:7px!important;border-radius:9px!important}
  body.is-mobile .dcks-runtime-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;margin-bottom:7px!important}
  body.is-mobile .dcks-runtime-grid>div{display:block!important;padding:6px 7px!important;border-radius:8px!important;min-width:0!important}
  body.is-mobile .dcks-runtime-grid span{display:block!important;font-size:7.8px!important;margin-bottom:2px!important}body.is-mobile .dcks-runtime-grid b{display:block!important;text-align:left!important;font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body.is-mobile .dcks-runtime-log{margin-top:6px!important}body.is-mobile .dcks-runtime-log h3{font-size:8.5px!important;margin-bottom:3px!important}
  body.is-mobile .dcks-runtime-log article{grid-template-columns:62px minmax(0,1fr)!important;padding:5px 6px!important;font-size:8px!important}
  body.is-mobile .dcks-runtime-actions{padding:7px 9px max(7px,env(safe-area-inset-bottom))!important;display:flex!important;overflow-x:auto!important;flex-wrap:nowrap!important}
  body.is-mobile .dcks-runtime-actions .btn{flex:0 0 auto!important;min-height:34px!important;padding:5px 9px!important}

  /* 6. Tiện ích: cố định 3 ô mỗi hàng, thu gọn phần viền để tăng icon và chữ. */
  body.is-mobile #mob-more-sheet{
    position:fixed!important;left:0!important;right:0!important;bottom:var(--dcks-mobile-nav-h)!important;border-radius:14px 14px 0 0!important;border-left:0!important;border-right:0!important;border-bottom:0!important
  }
  body.is-mobile #mob-more-sheet.open{max-height:min(64dvh,560px)!important;padding-bottom:max(4px,env(safe-area-inset-bottom))!important}
  body.is-mobile #mob-more-sheet .mms-hdr{padding:6px 8px 5px!important;min-height:38px!important}
  body.is-mobile #mob-more-sheet .mms-hdr b{font-size:13.5px!important;line-height:1.1!important}
  body.is-mobile #mob-more-sheet .mms-hdr small{display:none!important}
  body.is-mobile .mms-close{width:28px!important;height:28px!important;border-radius:8px!important}
  body.is-mobile .mms-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;padding:5px 6px 6px!important}
  body.is-mobile #mob-more-sheet .mms-item{
    min-width:0!important;min-height:68px!important;padding:6px 3px!important;border-radius:10px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;text-align:center!important
  }
  body.is-mobile #mob-more-sheet .mms-ico{width:32px!important;height:32px!important;border-radius:9px!important;font-size:17px!important;flex:0 0 32px!important}
  body.is-mobile #mob-more-sheet .mms-item b{width:100%!important;font-size:10px!important;line-height:1.1!important;white-space:normal!important;overflow-wrap:anywhere!important}
  body.is-mobile #mob-more-sheet .mms-item small{display:none!important}

  /* 7. Công cụ bản đồ mobile: một hàng gọn, tự đóng sau khi chọn. */
  body.is-mobile #maptool-wrap{position:fixed!important;top:calc(var(--dcks-mobile-top-h) + 7px)!important;left:auto!important;right:7px!important;z-index:1885!important;display:flex!important;flex-direction:row-reverse!important;gap:4px!important;max-width:calc(100vw - 14px)!important}
  body.is-mobile #maptool-wrap #maptool-bar{position:static!important;display:flex!important;flex-direction:row!important;gap:2px!important;overflow-x:auto!important;overflow-y:hidden!important;background:rgba(255,255,255,.92)!important;border:1px solid rgba(205,219,236,.92)!important;border-radius:11px!important;box-shadow:0 6px 18px rgba(24,54,95,.12)!important;backdrop-filter:blur(8px)!important}
  body.is-mobile #maptool-wrap .maptool{width:31px!important;height:31px!important;min-width:31px!important;flex:0 0 31px!important;border-radius:8px!important;background:transparent!important;color:#36506f!important}
  body.is-mobile #maptool-wrap .maptool.active{background:#246bfd!important;color:#fff!important;border-color:#246bfd!important}
  body.is-mobile #maptool-wrap .maptool-sep{width:1px!important;height:21px!important;min-width:1px!important;margin:5px 1px!important}
  body.is-mobile #maptool-toggle,body.is-mobile #mobile-tools-toggle{width:35px!important;height:35px!important;min-width:35px!important;border-radius:11px!important;background:rgba(255,255,255,.9)!important;color:#254565!important;border:1px solid rgba(205,219,236,.9)!important;box-shadow:0 5px 16px rgba(24,54,95,.1)!important}
  body.is-mobile #mobile-tools-toggle{display:none!important}
  body.is-mobile.mobile-tools-open #maptool-toggle{background:#246bfd!important;color:#fff!important;border-color:#246bfd!important}

  /* Nút hành động bản đồ cũng thu gọn. */
  body.is-mobile #mobile-actions-toggle{right:8px!important;bottom:calc(var(--dcks-mobile-nav-h) + 10px)!important;width:37px!important;height:37px!important;border-radius:11px!important}
  body.is-mobile #gps-fab,body.is-mobile #basemap-fab,body.is-mobile #dock-fab{right:8px!important;width:37px!important;height:37px!important;border-radius:11px!important}
  body.is-mobile #gps-fab{bottom:calc(var(--dcks-mobile-nav-h) + 54px)!important}
  body.is-mobile #basemap-fab{bottom:calc(var(--dcks-mobile-nav-h) + 96px)!important}
  body.is-mobile #dock-fab{bottom:calc(var(--dcks-mobile-nav-h) + 138px)!important}

  /* Hai sidebar fill toàn bộ vùng nhìn, không hở mép và không dùng thanh kéo xấu. */
  body.is-mobile #left-panel,body.is-mobile #right-panel{
    position:fixed!important;top:var(--dcks-mobile-top-h)!important;bottom:var(--dcks-mobile-nav-h)!important;left:0!important;right:0!important;
    width:100vw!important;height:auto!important;max-width:none!important;max-height:none!important;border-radius:0!important;border-left:0!important;border-right:0!important;
    box-shadow:none!important;background:#fff!important;overflow:hidden!important;z-index:1875!important
  }
  body.is-mobile #left-panel{transform:translateX(-102%)!important;opacity:1!important}
  body.is-mobile #left-panel.mob-open:not(.collapsed){transform:translateX(0)!important;pointer-events:auto!important}
  body.is-mobile #left-panel.collapsed{transform:translateX(-102%)!important}
  body.is-mobile #right-panel{transform:translateX(102%)!important;opacity:1!important}
  body.is-mobile #right-panel.open{transform:translateX(0)!important;pointer-events:auto!important}
  body.is-mobile #left-panel::before,body.is-mobile #right-panel::before{display:none!important}
  body.is-mobile #left-panel .lpanel-top,body.is-mobile #right-panel .rpanel-top{position:sticky!important;top:0!important;z-index:4!important;min-height:45px!important;padding:7px 9px!important}
  body.is-mobile #left-panel .lpanel-body,body.is-mobile #right-panel .rpanel-body{flex:1 1 auto!important;height:auto!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding-bottom:max(8px,env(safe-area-inset-bottom))!important}
  body.is-mobile #lpanel-resizer,body.is-mobile #rpanel-resizer{display:none!important}

  /* Bảng điều khiển phải là accordion; mở một mục thì các mục khác đóng. */
  body.is-mobile.dock-open #map-dock{
    position:fixed!important;top:var(--dcks-mobile-top-h)!important;right:0!important;bottom:var(--dcks-mobile-nav-h)!important;left:auto!important;width:min(86vw,350px)!important;max-height:none!important;
    border-radius:14px 0 0 0!important;padding:6px!important;background:rgba(255,255,255,.98)!important;overflow-y:auto!important;display:flex!important;transform:none!important;opacity:1!important;pointer-events:auto!important
  }
  body.is-mobile #map-dock .dock-sec{padding:0!important;margin:0 0 5px!important;border:1px solid #dfe7f1!important;border-radius:10px!important;overflow:hidden!important;background:#fff!important}
  body.is-mobile #map-dock .dock-hdr{position:relative!important;padding:9px 30px 9px 10px!important;margin:0!important;background:#f4f7fb!important;color:#26415f!important;cursor:pointer!important;font-size:9.5px!important}
  body.is-mobile #map-dock .dock-hdr::after{content:"⌄";position:absolute;right:10px;top:50%;transform:translateY(-50%) rotate(-90deg);transition:transform .15s}
  body.is-mobile #map-dock .dock-sec.dcks-open>.dock-hdr::after{transform:translateY(-50%) rotate(0)}
  body.is-mobile #map-dock .dock-sec>*:not(.dock-hdr){display:none!important}
  body.is-mobile #map-dock .dock-sec.dcks-open>*:not(.dock-hdr){display:flex!important}
  body.is-mobile #map-dock .dock-sec.dcks-open>select,body.is-mobile #map-dock .dock-sec.dcks-open>.dock-crs-note,body.is-mobile #map-dock .dock-sec.dcks-open>.dock-ai-body,body.is-mobile #map-dock .dock-sec.dcks-open>#dock-warn-list{display:block!important}
  body.is-mobile #map-dock .dock-sec.dcks-open{padding-bottom:7px!important}
  body.is-mobile #map-dock .dock-sec.dcks-open>*:not(.dock-hdr){margin-left:7px!important;margin-right:7px!important}
  body.is-mobile #map-dock .dock-tools{grid-template-columns:repeat(5,1fr)!important;gap:5px!important}body.is-mobile #map-dock .dock-btn{min-height:32px!important}
  body.is-mobile #map-dock .dcks-data-tools{grid-template-columns:1fr!important;gap:4px!important}body.is-mobile #map-dock .dcks-data-tools button{padding:6px!important}

  /* Thẻ tổng hợp mặc định thành một dải nhỏ; bấm để mở 2x2. */
  body.is-mobile #stat-cards{
    top:calc(var(--dcks-mobile-top-h) + 7px)!important;left:7px!important;right:50px!important;width:auto!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;cursor:pointer!important;pointer-events:auto!important;z-index:1220!important
  }
  body.is-mobile #stat-cards .stat-card{display:flex!important;min-height:30px!important;height:30px!important;padding:3px 4px!important;gap:2px!important;border-radius:8px!important;background:rgba(255,255,255,.68)!important;border-color:rgba(207,220,236,.7)!important;box-shadow:none!important;backdrop-filter:blur(5px)!important;overflow:hidden!important}
  body.is-mobile #stat-cards .stat-ic,body.is-mobile #stat-cards .stat-lbl{display:none!important}
  body.is-mobile #stat-cards .stat-val{width:100%!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:7px!important}
  body.is-mobile #stat-cards .stat-val b{font-size:9px!important;line-height:1!important}body.is-mobile #stat-cards .stat-val span{font-size:6.5px!important}
  body.is-mobile #stat-cards .live-dot{width:5px!important;height:5px!important}
  body.is-mobile #sc-session{font-size:0!important}body.is-mobile #sc-session::after{content:"Hoạt động";font-size:8px!important}
  body.is-mobile #stat-cards.dcks-expanded{grid-template-columns:repeat(2,minmax(0,1fr))!important;right:7px!important;gap:5px!important}
  body.is-mobile #stat-cards.dcks-expanded .stat-card{height:40px!important;min-height:40px!important;padding:5px 6px!important;gap:5px!important}
  body.is-mobile #stat-cards.dcks-expanded .stat-ic{display:flex!important;width:24px!important;height:24px!important;flex:0 0 24px!important}
  body.is-mobile #stat-cards.dcks-expanded .stat-lbl{display:block!important;font-size:7px!important}
  body.is-mobile #stat-cards.dcks-expanded .stat-val{text-align:left!important;font-size:8px!important}body.is-mobile #stat-cards.dcks-expanded .stat-val b{font-size:11px!important}

  /* Các trang chức năng bớt khoảng trắng và padding rộng. */
  body.is-mobile .page-hdr{padding:8px 9px!important;gap:5px!important}.page-title{font-size:13px!important}.page-subtitle{font-size:8px!important}
  body.is-mobile #dp-layers,body.is-mobile #dp-stats,body.is-mobile #dp-intersect,body.is-mobile #dp-planning,body.is-mobile #dp-supply,body.is-mobile #dp-export,body.is-mobile #dp-admin{padding:7px!important}
  body.is-mobile .admin-section,body.is-mobile .planning-card,body.is-mobile .supply-card,body.is-mobile .rp-section{margin-bottom:6px!important;padding:8px!important;border-radius:10px!important}
}

@media(max-width:380px){
  body.is-mobile .mms-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;padding-left:5px!important;padding-right:5px!important}
  body.is-mobile #mob-more-sheet .mms-item{min-height:66px!important;padding-left:2px!important;padding-right:2px!important}
  body.is-mobile #mob-more-sheet .mms-ico{width:30px!important;height:30px!important;flex-basis:30px!important;font-size:16px!important}
  body.is-mobile #mob-more-sheet .mms-item b{font-size:9.5px!important}
  body.is-mobile #stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;right:49px!important}
  body.is-mobile #stat-cards .stat-card:nth-child(n+3){display:none!important}
  body.is-mobile #stat-cards.dcks-expanded{grid-template-columns:repeat(2,minmax(0,1fr))!important;right:7px!important}
  body.is-mobile #stat-cards.dcks-expanded .stat-card:nth-child(n+3){display:flex!important}
}

/* Nút dẫn đường trong popup địa danh. */
.dcks-route-to-place{
  display:block;width:100%;margin-top:8px;padding:8px 10px;border:0;border-radius:8px;
  background:linear-gradient(135deg,#246bfd,#1689b8);color:#fff;font:700 11px Arial,sans-serif;
  cursor:pointer;box-shadow:0 4px 12px rgba(36,107,253,.22)
}
.dcks-route-to-place:hover{filter:brightness(1.04)}
.dcks-route-to-place:focus-visible{outline:3px solid rgba(36,107,253,.24);outline-offset:2px}

/* Desktop/tablet: panel sát vùng bản đồ, thanh cuộn mảnh và không hở cạnh. */
@media(min-width:1025px){
  #left-panel,#right-panel{top:6px!important;bottom:34px!important}
  #left-panel{left:6px!important}
  #right-panel{right:0!important;border-radius:14px 0 0 14px!important;border-right:0!important}
}

@media(max-width:1024px){
  body.is-mobile .dcks-route-to-place{min-height:36px;font-size:10px;border-radius:9px}
  body.is-mobile #maptool-wrap #maptool-bar::-webkit-scrollbar{height:3px}
  body.is-mobile #maptool-wrap #maptool-bar::-webkit-scrollbar-thumb{background:rgba(76,105,145,.32);border-radius:99px}
}

@media(max-width:1024px){
  /* Tab chi tiết mobile: bỏ mảng xanh lớn, thay bằng chỉ báo nhỏ và chữ rõ. */
  body.is-mobile #right-panel .ad-tabs{
    gap:2px!important;padding:3px!important;background:#eef3f8!important;border-color:#dce5ef!important;border-radius:10px!important
  }
  body.is-mobile #right-panel .ad-tab{
    min-width:max-content!important;min-height:30px!important;padding:5px 8px!important;border-radius:7px!important;
    background:transparent!important;color:#53657e!important;font-size:8.8px!important;box-shadow:none!important
  }
  body.is-mobile #right-panel .ad-tab.active{
    background:#fff!important;color:#246bfd!important;box-shadow:inset 0 -3px #246bfd,0 1px 4px rgba(35,70,115,.08)!important
  }
}

/* ===== SOURCE: ui-admin-mobile.css ===== */
/* DCKS 1.0 — giao diện quản trị và mobile. */
:root{--font:Arial,Helvetica,sans-serif;--mono:Arial,Helvetica,sans-serif}
html,body,button,input,select,textarea,option,table,.leaflet-container,.maplibregl-map{font-family:Arial,Helvetica,sans-serif!important}
button,.btn,.nav-btn,.dock-hdr,.lpanel-title,.ad-sec-title,.modal-title,.admin-section-title{font-weight:700!important}
body,p,span,small,label,input,select,textarea,td,th{font-synthesis:none}

/* Bỏ trạng thái phiên làm việc khỏi dải KPI. */
#stat-cards .stat-card:has(#sc-session){display:none!important}
#dcks-mobile-top-cluster{display:contents}
#stat-cards-toggle{display:none;border:1px solid var(--border);background:rgba(12,29,57,.55);color:var(--text);border-radius:9px;cursor:pointer;font:700 17px/1 Arial,sans-serif}

/* Toolbar/statusbar gọn và trong hơn. */
#map-statusbar{background:rgba(7,20,42,.58)!important;border-top-color:rgba(151,177,215,.24)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;text-shadow:none!important}
#map-statusbar .msb-cell{font-family:Arial,Helvetica,sans-serif!important;font-weight:500}
#map-statusbar b{font-weight:700!important}
#maptool-wrap #maptool-bar{background:rgba(7,24,50,.52)!important;border-color:rgba(145,174,218,.25)!important;box-shadow:0 5px 16px rgba(2,8,24,.16)!important;backdrop-filter:blur(6px)!important}
#maptool-wrap .maptool{background:rgba(20,49,88,.58)!important}

/* Quản trị: card tự co theo nội dung, không kéo cao theo card bên cạnh. */
#dp-admin{padding:10px 12px!important}
#dp-admin>.admin-section,#dp-admin>.dock-sec{margin-bottom:10px!important}
#dp-admin .admin-section,#dp-admin .dock-sec{align-self:start!important}
#dp-admin .admin-section{padding:11px!important;border-radius:11px!important}
#dp-admin .admin-section-title{margin-bottom:8px!important;font-size:11px!important}
#dp-admin .dock-sec{padding:10px!important;border-radius:10px!important;box-shadow:none!important}
#dp-admin .dock-hdr{margin-bottom:6px!important;font-size:10px!important}
#dp-admin>div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr)!important;gap:9px!important;align-items:start!important;margin-bottom:10px!important}
#dp-admin>div[style*="repeat(auto-fit,minmax(340px,1fr))"]{grid-template-columns:repeat(2,minmax(430px,1fr))!important;gap:9px!important;align-items:start!important;margin-bottom:10px!important}
#dp-admin>div[style*="repeat(4,1fr)"]{gap:7px!important;margin-bottom:10px!important}
#dp-admin .stat-pill{padding:8px!important;min-height:50px!important}
#dp-admin .sp-val{font-size:17px!important}.sp-lbl{font-size:8px!important}
.admin-action-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))!important;gap:8px!important}
.admin-action-card{min-height:64px!important;padding:9px 10px!important;grid-template-columns:34px minmax(0,1fr)!important;column-gap:8px!important;row-gap:2px!important}
.admin-action-card>span{width:32px!important;height:32px!important;font-size:14px!important;grid-row:1/3!important}
.admin-action-card>b{font-size:10.5px!important}.admin-action-card>small{font-size:8.3px!important;line-height:1.25!important}
#dcks-admin-tools .admin-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.dcks-sec-grid{grid-template-columns:minmax(220px,.8fr) minmax(320px,1.25fr) minmax(260px,1fr) minmax(240px,.95fr)!important;gap:8px!important;align-items:start!important}
.dcks-security-panel .dock-sec{height:auto!important;min-height:0!important}
.dcks-checks{gap:4px!important}.dcks-check{padding:5px 6px!important;font-size:9px!important}.dcks-check b{width:15px!important;height:15px!important}
.dcks-sec-text{font-size:9.5px!important;line-height:1.4!important}.dcks-sec-actions{gap:4px!important;margin:5px 0!important}
#dp-admin .admin-table{font-size:9.5px!important;line-height:1.25!important}
#dp-admin .admin-table th,#dp-admin .admin-table td{padding:5px 6px!important}
#dp-admin .admin-table input[type=checkbox]{width:14px;height:14px}

/* Panel thống kê trong Bảng điều hành: cấu trúc rõ, không lẫn nhãn và ô nhập. */
.ad-stats-panel{overflow:visible!important}
.ad-stats-title{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}
.ad-stat-summary{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:6px;padding:8px 9px 0}
.ad-stat-summary>div{min-width:0;padding:7px 8px;border:1px solid rgba(112,151,207,.22);border-radius:8px;background:rgba(18,39,72,.42)}
.ad-stat-summary span{display:block;color:var(--text3);font-size:10px;font-weight:700;line-height:1.25;margin-bottom:4px}
.ad-stat-summary b{display:block;color:var(--text);font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-stat-controls{padding:8px 9px 0!important;margin:0!important}
.ad-stat-controls label>span{font-size:10px;font-weight:700;line-height:1.25;color:var(--text3)}
.ad-stat-controls select,.ad-stat-controls input{font-family:Arial,Helvetica,sans-serif!important;font-size:12px!important;height:36px!important;padding:5px 9px!important}
.ad-stat-scope-note{padding:7px 9px 0;margin:0!important;font-size:10.5px!important;line-height:1.45!important}
.ad-stat-actions{padding:7px 9px 0;margin:0!important}
.ad-stat-advanced{justify-content:flex-start!important}
.ad-chart-switch{display:flex!important;align-items:center!important;gap:5px!important;flex-wrap:wrap!important}
.ad-stats-title{font-size:11.5px!important;line-height:1.3!important}
.ad-stats-panel .btn-xs{font-size:10.5px!important;line-height:1.2!important;min-height:27px!important;padding:4px 8px!important}
.dcks-stat-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px;padding:8px 9px 0}
.dcks-stat-summary-grid>div{padding:7px 8px;border:1px solid rgba(112,151,207,.22);border-radius:8px;background:rgba(18,39,72,.42)}
.dcks-stat-summary-grid span{display:block;color:var(--text3);font-size:10px;line-height:1.25;margin-bottom:4px}.dcks-stat-summary-grid b{font-size:12px;line-height:1.3;color:var(--text)}
.ad-stat-unit{margin-left:auto;color:var(--text3);font-size:10px;line-height:1.35}
.ad-stat-chart{padding:7px 9px 9px}
.ad-stat-chart .ad-bars{gap:4px}.ad-stat-chart .ad-bar-row{grid-template-columns:minmax(92px,1fr) minmax(80px,1.5fr) 48px!important}
.ad-stat-chart .ad-bar-name,.ad-stat-chart .ad-bar-val{font-size:10.5px!important;line-height:1.35!important}

/* Tọa độ Z */
#mc-z{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:2px 5px;border-radius:7px;background:rgba(40,78,124,.09);color:#50647e;font-size:8px;font-weight:700;white-space:nowrap}

/* Desktop vừa: giữ quản trị dễ đọc. */
@media(max-width:1280px){
  #dp-admin>div[style*="repeat(auto-fit,minmax(340px,1fr))"]{grid-template-columns:1fr!important}
  .dcks-sec-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:1024px){
  body.is-mobile{--dcks-mobile-top-h:42px}
  body.is-mobile #dcks-mobile-top-cluster{position:fixed;left:4px;top:max(4px,env(safe-area-inset-top));z-index:1900;display:flex;align-items:flex-start;gap:3px;max-width:calc(100vw - 8px);pointer-events:none}
  body.is-mobile #dcks-mobile-top-cluster>*{pointer-events:auto}
  body.is-mobile #stat-cards{position:static!important;display:grid!important;grid-template-columns:76px 100px 28px!important;gap:3px!important;width:auto!important;left:auto!important;right:auto!important;top:auto!important;cursor:default!important}
  body.is-mobile #stat-cards .stat-card{display:flex!important;width:auto!important;min-width:0!important;height:29px!important;min-height:29px!important;padding:3px 5px!important;border-radius:8px!important;background:rgba(255,255,255,.62)!important;border-color:rgba(202,217,235,.72)!important;backdrop-filter:blur(5px)!important}
  body.is-mobile #stat-cards .stat-card:nth-child(n+3){display:none!important}
  body.is-mobile #stat-cards .stat-ic,body.is-mobile #stat-cards .stat-lbl{display:none!important}
  body.is-mobile #stat-cards .stat-val,body.is-mobile #stat-cards .stat-val b,body.is-mobile #stat-cards .stat-val span{font-family:Arial,Helvetica,sans-serif!important;white-space:nowrap!important}
  body.is-mobile #stat-cards .stat-val{font-size:7px!important;text-align:center!important}
  body.is-mobile #stat-cards .stat-val b{font-size:9px!important}
  body.is-mobile #stat-cards-toggle{display:flex!important;align-items:center;justify-content:center;width:28px;height:29px;padding:0;background:rgba(255,255,255,.72)!important;color:#254a76!important;border-color:rgba(202,217,235,.75)!important;box-shadow:none!important}
  body.is-mobile #stat-cards.dcks-expanded{grid-template-columns:84px 112px 84px 28px!important}
  body.is-mobile #stat-cards.dcks-expanded .stat-card:nth-child(3){display:flex!important}
  body.is-mobile #stat-cards.dcks-expanded #stat-cards-toggle{transform:rotate(180deg)}
  body.is-mobile #maptool-wrap{position:static!important;left:auto!important;right:auto!important;top:auto!important;max-width:none!important;display:flex!important;flex-direction:row!important;gap:3px!important}
  body.is-mobile #maptool-toggle{display:flex!important;width:29px!important;height:29px!important;min-width:29px!important;border-radius:8px!important;padding:0!important;background:rgba(255,255,255,.72)!important;color:#254a76!important;border:1px solid rgba(202,217,235,.75)!important;box-shadow:none!important}
  body.is-mobile #maptool-wrap #maptool-bar{position:fixed!important;left:4px!important;right:4px!important;top:38px!important;max-width:none!important;width:auto!important;flex-direction:row!important;background:rgba(255,255,255,.78)!important;border-color:rgba(202,217,235,.82)!important;border-radius:9px!important;box-shadow:0 7px 18px rgba(24,54,95,.10)!important;backdrop-filter:blur(7px)!important}
  body.is-mobile #maptool-wrap .maptool{background:transparent!important;color:#315170!important}
  body.is-mobile #maptool-wrap .maptool.active{background:#246bfd!important;color:#fff!important}
  body.is-mobile #mobile-tools-toggle{display:none!important}
  body.is-mobile #mobile-coordinate-box{left:7px!important;right:58px!important;bottom:calc(var(--dcks-mobile-nav-h) + 12px)!important;padding:6px 8px!important;min-height:34px!important;border-radius:11px!important}
  body.is-mobile .mc-readout{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto 22px!important;gap:6px!important;align-items:center!important}
  body.is-mobile .mc-readout b{font-size:8.8px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.is-mobile #mc-z{font-size:7.5px!important;min-width:38px!important;padding:2px 4px!important}
  body.is-mobile #dp-admin{padding:6px!important}
  body.is-mobile #dp-admin>div[style*="grid-template-columns"],body.is-mobile .dcks-sec-grid{grid-template-columns:1fr!important;gap:6px!important}
  body.is-mobile #dcks-admin-tools .admin-action-grid,body.is-mobile .admin-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  body.is-mobile .admin-action-card{min-height:58px!important;padding:7px!important;grid-template-columns:29px minmax(0,1fr)!important}
  body.is-mobile .admin-action-card>span{width:28px!important;height:28px!important}
  body.is-mobile .admin-action-card>b{font-size:9.5px!important}
  body.is-mobile .admin-action-card>small{font-size:7.8px!important}
  body.is-mobile .dcks-security-panel{margin-bottom:6px!important}
  body.is-mobile #dp-admin .admin-table{min-width:680px!important}
  body.is-mobile .ad-stat-summary{grid-template-columns:1fr 1fr!important;padding:7px 7px 0!important}
  body.is-mobile .ad-stat-summary>div:first-child{grid-column:1/-1}
  body.is-mobile .ad-stat-controls{grid-template-columns:1fr!important;padding:7px 7px 0!important}
  body.is-mobile .ad-stat-actions{padding:7px!important}
  body.is-mobile .ad-stat-unit{width:100%;margin-left:0}
  body.is-mobile .ad-stat-chart{padding:0 7px 7px!important}
  body.is-mobile .ad-stat-chart .ad-bar-row{grid-template-columns:minmax(80px,1fr) minmax(55px,1fr) 42px!important}
  body.is-mobile #map-statusbar{background:rgba(255,255,255,.50)!important}
}

@media(max-width:390px){
  body.is-mobile #stat-cards{grid-template-columns:68px 88px 26px!important}
  body.is-mobile #stat-cards.dcks-expanded{grid-template-columns:68px 88px 68px 26px!important}
  body.is-mobile #maptool-toggle,body.is-mobile #stat-cards-toggle{width:26px!important;min-width:26px!important}
  body.is-mobile #dcks-admin-tools .admin-action-grid,body.is-mobile .admin-action-grid{grid-template-columns:1fr!important}
}
/* Tăng chữ riêng giao diện quản trị trên máy tính */
body.is-desktop #dp-admin .admin-section-title{
  font-size:13px!important;
}

body.is-desktop #dp-admin .dock-hdr{
  font-size:12px!important;
  line-height:1.35!important;
}

body.is-desktop .admin-action-card>b{
  font-size:13px!important;
  line-height:1.3!important;
}

body.is-desktop .admin-action-card>small{
  font-size:11px!important;
  line-height:1.4!important;
}

body.is-desktop .dcks-sec-text,
body.is-desktop .dcks-sec-loading,
body.is-desktop .dcks-sec-error{
  font-size:11.5px!important;
  line-height:1.5!important;
}

body.is-desktop .dcks-check{
  font-size:10.5px!important;
}

body.is-desktop .dcks-check small{
  font-size:9.5px!important;
}

/* ===== SOURCE: ui-map-compact.css ===== */
/* DCKS 1.0 — bố cục bản đồ gọn. */

/* Desktop: cụm KPI chỉ chiếm đúng bề rộng nội dung, không kéo dài trên bản đồ. */
@media (min-width:1025px){
  body:not(.is-mobile) #maptool-wrap{
    top:10px!important;
    left:calc(var(--lp-w) + 10px)!important;
    right:auto!important;
    gap:4px!important;
    align-items:flex-start!important;
  }
  body:not(.is-mobile):has(#left-panel.collapsed) #maptool-wrap{
    left:0!important;
  }
  body:not(.is-mobile) #maptool-toggle{
    order:-1!important;
    width:24px!important;
    min-width:24px!important;
    height:44px!important;
    padding:0!important;
    margin:0!important;
    border-left:0!important;
    border-radius:0 9px 9px 0!important;
    background:rgba(8,25,51,.66)!important;
    box-shadow:0 5px 14px rgba(2,8,24,.16)!important;
  }
  body:not(.is-mobile) #maptool-wrap #maptool-bar{
    margin:0!important;
  }

  body:not(.is-mobile) #stat-cards{
    top:10px!important;
    left:calc(var(--lp-w) + 42px)!important;
    right:auto!important;
    width:max-content!important;
    max-width:calc(100vw - var(--lp-w) - 310px)!important;
    gap:6px!important;
    align-items:stretch!important;
  }
  body:not(.is-mobile):has(#left-panel.collapsed) #stat-cards{
    left:30px!important;
    max-width:calc(100vw - 300px)!important;
  }
  body:not(.is-mobile):has(#maptool-wrap:not(.collapsed)):has(#left-panel.collapsed) #stat-cards{
    left:72px!important;
  }
  body:not(.is-mobile):has(#maptool-wrap:not(.collapsed)):has(#left-panel:not(.collapsed)) #stat-cards{
    left:calc(var(--lp-w) + 84px)!important;
  }

  body:not(.is-mobile) #stat-cards .stat-card{
    flex:0 0 auto!important;
    width:138px!important;
    max-width:138px!important;
    min-width:0!important;
    min-height:44px!important;
    height:44px!important;
    gap:7px!important;
    padding:5px 8px!important;
    border-radius:10px!important;
    box-shadow:0 4px 14px rgba(2,8,24,.16)!important;
    background:rgba(10,20,42,.50)!important;
    backdrop-filter:blur(7px)!important;
    -webkit-backdrop-filter:blur(7px)!important;
  }
  body:not(.is-mobile) #stat-cards .stat-card:nth-child(2){
    width:164px!important;
    max-width:164px!important;
  }
  body:not(.is-mobile) #stat-cards .stat-card:nth-child(3){
    width:172px!important;
    max-width:172px!important;
  }
  body:not(.is-mobile) #stat-cards .stat-ic{
    width:29px!important;
    height:29px!important;
    flex:0 0 29px!important;
    border-radius:8px!important;
  }
  body:not(.is-mobile) #stat-cards .stat-ic svg{
    width:15px!important;
    height:15px!important;
  }
  body:not(.is-mobile) #stat-cards .stat-lbl{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:8.7px!important;
    line-height:1.15!important;
    font-weight:600!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body:not(.is-mobile) #stat-cards .stat-val{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:11px!important;
    line-height:1.15!important;
    margin-top:2px!important;
    white-space:nowrap!important;
  }
  body:not(.is-mobile) #stat-cards .stat-val b{
    font-size:13px!important;
    font-weight:700!important;
  }
  body:not(.is-mobile) #stat-cards .stat-val span{
    font-size:8px!important;
    font-weight:500!important;
  }
}

/* Màn hình desktop hẹp: tiếp tục thu gọn nhưng không chồng thanh công cụ. */
@media (min-width:1025px) and (max-width:1360px){
  body:not(.is-mobile) #stat-cards .stat-card{width:126px!important;max-width:126px!important}
  body:not(.is-mobile) #stat-cards .stat-card:nth-child(2){width:150px!important;max-width:150px!important}
  body:not(.is-mobile) #stat-cards .stat-card:nth-child(3){width:158px!important;max-width:158px!important}
}

/* Nút panel lớp luôn bám đúng mép ngoài của panel; khi đóng nằm sát mép màn hình. */
@media (min-width:1025px){
  body:not(.is-mobile) #lpanel-toggle-btn{
    left:calc(var(--lp-w) + 9px)!important;
    width:18px!important;
    height:46px!important;
    border-radius:0 8px 8px 0!important;
  }
  body:not(.is-mobile) #left-panel.collapsed ~ #lpanel-toggle-btn{
    left:0!important;
  }
}

/* ===== SOURCE: ui-mobile-home.css ===== */
/* DCKS 1.0 — trạng thái mặc định mobile. */
@media (max-width:1024px){
  body.is-mobile .gsp-mode-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    padding:8px 0 7px!important;
  }
  body.is-mobile .gsp-mode-card{
    min-width:0!important;
    min-height:42px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:7px 8px!important;
    border:1px solid #d6e1ee!important;
    border-radius:10px!important;
    background:rgba(247,249,252,.96)!important;
    color:#40536d!important;
    box-shadow:none!important;
  }
  body.is-mobile .gsp-mode-card.active{
    border-color:#3679df!important;
    background:#fff!important;
    color:#1f62c4!important;
    box-shadow:inset 0 -3px 0 #3679df!important;
  }
  body.is-mobile .gsp-mode-card .gsp-mode-icon,
  body.is-mobile .gsp-mode-card small{display:none!important}
  body.is-mobile .gsp-mode-card>span:last-child{
    display:block!important;
    min-width:0!important;
    width:100%!important;
    overflow:visible!important;
    text-align:center!important;
  }
  body.is-mobile .gsp-mode-card b{
    display:block!important;
    width:100%!important;
    color:inherit!important;
    font:700 11px/1.25 Arial,Helvetica,sans-serif!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  /* Cụm số liệu và nút bản đồ dùng cùng một tông kính sáng; không có mảng xanh đặc khi mặc định. */
  body.is-mobile #stat-cards .stat-card,
  body.is-mobile #stat-cards-toggle,
  body.is-mobile #maptool-toggle,
  body.is-mobile #mobile-actions-toggle,
  body.is-mobile #gps-fab,
  body.is-mobile #basemap-fab,
  body.is-mobile #dock-fab{
    background:rgba(255,255,255,.78)!important;
    color:#294966!important;
    border-color:rgba(197,214,233,.88)!important;
    box-shadow:0 3px 11px rgba(37,66,105,.08)!important;
    backdrop-filter:blur(7px)!important;
    -webkit-backdrop-filter:blur(7px)!important;
  }
  body.is-mobile.mobile-tools-open #maptool-toggle,
  body.is-mobile.mobile-actions-open #mobile-actions-toggle,
  body.is-mobile #gps-fab.on,
  body.is-mobile.dock-open #dock-fab{
    background:rgba(236,244,255,.96)!important;
    color:#1e63c7!important;
    border-color:#75a5ee!important;
    box-shadow:0 0 0 2px rgba(54,121,223,.12)!important;
  }

  /* Khi giao diện được thu gọn, các bảng và sheet không giữ khoảng trống vô hình. */
  body.is-mobile #left-panel.collapsed,
  body.is-mobile #right-panel:not(.open),
  body.is-mobile #map-dock.collapsed,
  body.is-mobile #gsearch-panel:not(.open),
  body.is-mobile #mob-more-sheet:not(.open),
  body.is-mobile #mobile-basemap-sheet:not(.open),
  body.is-mobile #mobile-route-panel:not(.open){
    pointer-events:none!important;
  }
}

/* ===== SOURCE: ui-home-view.css ===== */
/* DCKS 1.0.7 — thanh trạng thái desktop trong suốt, giữ chữ dễ đọc. */
@media (min-width:1025px){
  body:not(.is-mobile) #map-statusbar{
    background:transparent!important;
    border-top:1px solid rgba(72,111,166,.24)!important;
    box-shadow:0 -1px 8px rgba(4,12,28,.08)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    padding:2px 5px!important;
    gap:2px!important;
  }
  body:not(.is-mobile) #map-statusbar .msb-cell{
    min-height:25px!important;
    height:25px!important;
    margin:0!important;
    padding:0 7px!important;
    border:1px solid rgba(122,155,201,.16)!important;
    border-radius:6px!important;
    background:rgba(5,18,39,.26)!important;
    color:rgba(232,241,255,.94)!important;
    text-shadow:0 1px 2px rgba(0,0,0,.52)!important;
    backdrop-filter:blur(3px) saturate(112%)!important;
    -webkit-backdrop-filter:blur(3px) saturate(112%)!important;
  }
  body:not(.is-mobile) #map-statusbar .msb-grow{
    background:transparent!important;
    border-color:transparent!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  body:not(.is-mobile) #map-statusbar .msb-k{
    color:rgba(210,224,245,.78)!important;
  }
  body:not(.is-mobile) #map-statusbar b{
    color:#f5f9ff!important;
  }
  body:not(.is-mobile) #map-statusbar .msb-btn,
  body:not(.is-mobile) #map-statusbar select{
    background:rgba(8,27,56,.34)!important;
    border-color:rgba(140,174,221,.22)!important;
    color:#edf5ff!important;
    box-shadow:none!important;
  }
  body:not(.is-mobile) #map-statusbar .msb-credit{
    background:rgba(5,18,39,.16)!important;
    color:rgba(220,232,249,.72)!important;
  }
}

/* ===== SOURCE: ui-feature-speed.css ===== */
/* DCKS 1.0.8 — phản hồi chọn đối tượng tức thời và tải phân tích theo nhu cầu. */
.dcks-fast-status{display:flex;align-items:center;gap:10px;margin:10px 0;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:rgba(12,30,58,.62)}
.dcks-fast-status>div{display:flex;flex-direction:column;gap:2px;min-width:0}.dcks-fast-status b{font-size:11px}.dcks-fast-status small{font-size:9.5px;color:var(--text3);line-height:1.35}
.dcks-fast-spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent);flex:0 0 auto}
.dcks-fast-status.is-loading .dcks-fast-spinner{animation:dcks-fast-spin .75s linear infinite}.dcks-fast-status.is-ready .dcks-fast-spinner{border:0;background:var(--success);box-shadow:0 0 0 4px rgba(34,197,94,.12)}.dcks-fast-status.is-error .dcks-fast-spinner{border:0;background:var(--danger);box-shadow:0 0 0 4px rgba(239,68,68,.12)}
@keyframes dcks-fast-spin{to{transform:rotate(360deg)}}
.dcks-fast-card{content-visibility:auto;contain-intrinsic-size:180px}.dcks-fast-actions{gap:5px!important}.dcks-detail-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;font-size:8.5px;font-weight:700;vertical-align:middle}.dcks-detail-badge.loading{background:rgba(59,130,246,.15);color:#78a8ff}.dcks-detail-badge.error{background:rgba(239,68,68,.14);color:#ff8b98}
.dcks-analysis-deferred{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px}.dcks-analysis-deferred>div{display:flex;flex-direction:column;gap:3px}.dcks-analysis-deferred small{color:var(--text3);font-size:9.5px;line-height:1.4}
@media(max-width:720px){.dcks-fast-status{margin:8px 0;padding:8px 10px}.dcks-analysis-deferred{align-items:flex-start;flex-direction:column}.dcks-analysis-deferred .btn{width:100%}.dcks-fast-actions{display:grid!important;grid-template-columns:1fr 1fr}.dcks-fast-actions .btn{width:100%}}

/* ===== SOURCE: ui-mobile-layer-groups.css ===== */
/* DCKS 1.0.10 — mobile layer groups, persistent controls and GPS altitude. */
.layer-title-wrap{display:flex;flex:1;min-width:0;align-items:center;gap:5px}
.layer-title-wrap .layer-name{display:block;flex:1;min-width:0}
.layer-parent-name{display:none}
.cat-folder{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--accent2);font-size:11px;flex:0 0 16px}

@media(max-width:1024px){
  /* Hai KPI đầu và nút mở hành động luôn hiện khi vào bản đồ. */
  body.is-mobile #dcks-mobile-top-cluster,
  body.is-mobile #stat-cards{display:flex!important;visibility:visible!important;opacity:1!important}
  body.is-mobile #stat-cards{display:grid!important}
  body.is-mobile #stat-cards .stat-card:nth-child(1),
  body.is-mobile #stat-cards .stat-card:nth-child(2){display:flex!important}
  body.is-mobile #stat-cards .stat-val{font-size:8.5px!important;line-height:1.05!important}
  body.is-mobile #stat-cards .stat-val b{font-size:11px!important;line-height:1.05!important}
  body.is-mobile #stat-cards-toggle{font-size:15px!important}
  body.is-mobile #mobile-actions-toggle{display:flex!important;visibility:visible!important;opacity:1!important;z-index:1955!important;font-size:24px!important;font-weight:800!important}

  /* Tọa độ dễ đọc hơn; Z giữ độ cao GPS gần nhất thay vì biến mất khi bản đồ di chuyển. */
  body.is-mobile #mobile-coordinate-box{min-height:39px!important;padding:7px 9px!important}
  body.is-mobile .mc-readout{grid-template-columns:auto minmax(0,1fr) auto 24px!important;gap:7px!important}
  body.is-mobile #mc-label{font-size:10.5px!important;font-weight:800!important;letter-spacing:.05px!important}
  body.is-mobile .mc-readout b{font-size:10.2px!important;font-weight:700!important}
  body.is-mobile #mc-z{font-size:8.8px!important;min-width:52px!important;padding:3px 5px!important;color:#52657d!important}
  body.is-mobile #mc-z.has-altitude{color:#1768b6!important;background:rgba(38,132,220,.12)!important}
  body.is-mobile #mc-expand{font-size:15px!important}

  /* Nhóm lớp có khối riêng; layer con thụt vào, có đường dẫn nhóm và tên nhóm. */
  body.is-mobile .cat-group{margin:6px 5px 8px!important;border:1px solid rgba(112,151,207,.27)!important;border-radius:12px!important;overflow:hidden!important;background:rgba(241,247,255,.72)!important}
  body.is-mobile .cat-header{min-height:44px!important;padding:7px 8px!important;background:rgba(222,235,252,.92)!important;border-bottom:1px solid rgba(112,151,207,.22)!important;gap:5px!important}
  body.is-mobile .cat-header .cat-name-inp,
  body.is-mobile .cat-header .cat-name-text{font-size:12px!important;font-weight:800!important;color:#18385e!important}
  body.is-mobile .cat-folder{font-size:13px!important;color:#2d76d2!important}
  body.is-mobile .cat-count{font-size:9px!important;min-width:22px!important;background:rgba(43,111,202,.13)!important;color:#275d9e!important}
  body.is-mobile .cat-body.open{position:relative!important;padding:5px 4px 6px 12px!important;background:rgba(255,255,255,.68)!important}
  body.is-mobile .cat-body.open:before{content:"";position:absolute;left:5px;top:5px;bottom:6px;width:3px;border-radius:3px;background:linear-gradient(#3b82f6,#22c55e)}
  body.is-mobile .cat-body .layer-item{margin:4px 0!important;border-radius:10px!important;border:1px solid rgba(112,151,207,.24)!important;background:rgba(255,255,255,.96)!important;box-shadow:0 2px 7px rgba(40,71,112,.05)!important}
  body.is-mobile .layer-row1{min-height:43px!important;padding:5px 6px!important}
  body.is-mobile .layer-title-wrap{flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:1px!important}
  body.is-mobile .layer-title-wrap .layer-name{width:100%!important;font-size:10.5px!important;font-weight:750!important;line-height:1.15!important}
  body.is-mobile .layer-parent-name{display:block!important;width:100%!important;font-size:7.8px!important;line-height:1.1!important;color:#6c819d!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body.is-mobile .layer-feat-count{font-size:8.5px!important;min-width:34px!important;text-align:right!important}
}


/* DCKS 1.0.10 — mobile mặc định chỉ hiện cụm KPI và nút ba chấm.
   Các nút GPS/nền/công cụ chỉ bung khi người dùng bấm ⋮. */
@media(max-width:1024px){
  body.is-mobile:not(.mobile-actions-open) #gps-fab,
  body.is-mobile:not(.mobile-actions-open) #basemap-fab,
  body.is-mobile:not(.mobile-actions-open) #dock-fab{
    display:none!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  body.is-mobile.mobile-actions-open #gps-fab,
  body.is-mobile.mobile-actions-open #basemap-fab,
  body.is-mobile.mobile-actions-open #dock-fab{
    display:flex!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  body.is-mobile #stat-cards{
    gap:4px!important;
    max-width:calc(100vw - 56px)!important;
  }
  body.is-mobile #stat-cards .stat-card{
    min-width:0!important;
    padding:5px 7px!important;
  }
  body.is-mobile #stat-cards .stat-label{
    font-size:8.8px!important;
    line-height:1.05!important;
    font-weight:700!important;
  }
  body.is-mobile #stat-cards .stat-val{
    font-size:9.6px!important;
    line-height:1.05!important;
    font-weight:700!important;
  }
  body.is-mobile #stat-cards .stat-val b{
    font-size:12.5px!important;
    line-height:1!important;
    font-weight:800!important;
  }
  body.is-mobile #mobile-actions-toggle{
    right:7px!important;
    bottom:calc(var(--dcks-mobile-nav-h) + 8px)!important;
  }
}

/* ===== SOURCE: ui-intersection.css ===== */
/* DCKS 1.0.12 — giao thoa hình học theo lớp/nhóm/lớp đang bật */
.int-config-card,.int-run-card{background:var(--bg1);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:14px}.int-grid{display:grid;gap:14px}.int-grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.int-target-row{margin-top:12px;align-items:end}.int-scope-summary{min-height:58px;border:1px solid var(--border);background:var(--bg2);border-radius:9px;padding:9px 12px;display:flex;flex-direction:column;justify-content:center}.int-scope-summary span,.int-scope-summary small{font-size:10px;color:var(--text3)}.int-scope-summary b{font-size:12px;color:var(--text1);margin:2px 0}.int-note{margin-top:12px;padding:9px 11px;border-radius:8px;background:rgba(61,123,253,.08);border:1px solid rgba(61,123,253,.22);font-size:11px;color:var(--text2);line-height:1.5}.int-fields-section{margin-bottom:14px}.int-field-title{font-size:10.5px;color:var(--text3);margin-bottom:5px;font-weight:700}.int-field-list{display:flex;flex-direction:column;gap:3px;max-height:170px;overflow:auto;background:var(--bg3);border:1px solid var(--border);border-radius:7px;padding:8px;scrollbar-width:thin}.int-field-item{display:flex;align-items:center;gap:7px;cursor:pointer;padding:3px 5px;border-radius:4px;font-size:11px}.int-field-item:hover{background:rgba(61,123,253,.08)}.int-field-actions{display:flex;gap:5px;margin-top:5px}.int-field-actions .btn{flex:1}.int-run-card{display:grid;grid-template-columns:minmax(240px,420px) 1fr;gap:14px;align-items:end}.int-run-card .fg small{display:block;margin-top:4px;color:var(--text3);font-size:9.5px}.int-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.int-muted{font-size:10px;color:var(--text3);line-height:1.45}.int-more{text-align:center;padding:12px}.int-result-summary{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.int-color-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}.int-layer-hdr{display:flex;align-items:center;gap:7px;cursor:pointer}.int-layer-hdr>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.int-layer-hdr>small{color:var(--text3);font-size:10px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.int-layer-hdr>.badge{margin-left:auto}.int-props{background:var(--bg3);border-radius:6px;padding:8px;margin-bottom:8px}.int-props>b{display:block;font-size:10px;color:var(--accent3);margin-bottom:5px}.int-props>div,.int-chip-list{display:flex;flex-wrap:wrap;gap:4px;max-height:92px;overflow:auto}.int-props span,.int-chip-list span{font-size:10px;background:var(--bg1);padding:2px 6px;border-radius:4px}.int-pair-head{display:flex;align-items:center;gap:7px;margin-bottom:5px}.int-pair-head>b{font-size:11px}.int-pair-head>em{margin-left:auto;font-style:normal;font-size:9.5px;color:var(--warn);text-align:right}.int-rp-card{border:1px solid var(--border);border-radius:9px;padding:8px 10px;margin-bottom:7px;background:var(--bg2)}.int-rp-head{display:flex;align-items:center;gap:6px;font-size:11px}.int-rp-layer{font-size:9.5px;color:var(--text3);margin:3px 0}.int-rp-relation{font-size:10px;color:var(--warn);font-weight:700;margin:4px 0}.int-rp-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.int-rp-summary{font-size:10px;color:var(--text3);margin-bottom:7px;padding:6px 8px;border-radius:6px;background:var(--bg3)}
@media(max-width:760px){.int-grid-2,.int-run-card{grid-template-columns:1fr}.int-config-card,.int-run-card{padding:10px;border-radius:10px}.int-target-row{gap:8px}.int-fields-section .rp-sec-body{padding:9px}.int-field-list{max-height:135px}.int-actions{justify-content:flex-start}.int-actions .btn{flex:1 1 calc(50% - 6px)}.int-layer-hdr>small{display:none}.int-pair-head{align-items:flex-start;flex-wrap:wrap}.int-pair-head>em{width:100%;margin-left:15px;text-align:left}.int-result-summary .badge{font-size:9px}}

/* DCKS 1.0.13 — phạm vi B loại trừ lẫn nhau. */
.int-target-row>.int-conditional-control[hidden]{display:none!important}
.int-target-row.mode-visible .int-scope-summary{grid-column:1/-1}
.int-target-row.mode-layer #int-b-layer-wrap,
.int-target-row.mode-group #int-b-group-wrap{grid-column:1/2}
.int-target-row.mode-layer .int-scope-summary,
.int-target-row.mode-group .int-scope-summary{grid-column:2/3}
@media(max-width:760px){
  .int-target-row{grid-template-columns:1fr!important}
  .int-target-row.mode-visible .int-scope-summary,
  .int-target-row.mode-layer #int-b-layer-wrap,
  .int-target-row.mode-group #int-b-group-wrap,
  .int-target-row.mode-layer .int-scope-summary,
  .int-target-row.mode-group .int-scope-summary{grid-column:1!important}
}

/* ===== SOURCE: ui-mobile-default-controls.css ===== */
/* DCKS 1.0.16 — KPI mobile đủ chữ; nút công cụ góc phải mở xuống dưới; độ cao GPS/DEM. */
.status-altitude{
  display:inline-flex;align-items:center;min-width:46px;padding:1px 5px;border-radius:6px;
  background:rgba(82,126,184,.12);color:inherit;font-weight:700;white-space:nowrap
}
.status-altitude[data-source="dem"]{color:#80c7ff;background:rgba(45,142,211,.14)}
.status-altitude[data-source="gps"]{color:#8fe2ae;background:rgba(48,170,105,.14)}
#mc-z-attribution{display:block;grid-column:1/-1;color:#71839a;font:600 8px/1.3 Arial,Helvetica,sans-serif;padding:2px 1px 0}

@media(max-width:1024px){
  body.is-mobile #dcks-mobile-top-cluster{
    position:fixed!important;left:7px!important;right:82px!important;top:max(7px,env(safe-area-inset-top))!important;
    z-index:1900!important;display:block!important;max-width:none!important;pointer-events:none!important
  }
  body.is-mobile #dcks-mobile-top-cluster>*{pointer-events:auto!important}
  body.is-mobile #stat-cards{
    position:static!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;width:100%!important;max-width:none!important;left:auto!important;right:auto!important;top:auto!important;
    cursor:default!important
  }
  body.is-mobile #stat-cards .stat-card,
  body.is-mobile #stat-cards .stat-card:nth-child(n+3){
    display:flex!important;height:48px!important;min-height:48px!important;min-width:0!important;padding:5px 7px!important;
    gap:5px!important;border-radius:11px!important;background:rgba(255,255,255,.84)!important;
    border:1px solid rgba(194,213,236,.94)!important;box-shadow:0 4px 14px rgba(35,66,106,.10)!important;
    backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;overflow:hidden!important
  }
  body.is-mobile #stat-cards .stat-ic{
    display:flex!important;width:27px!important;height:27px!important;flex:0 0 27px!important;border-radius:9px!important
  }
  body.is-mobile #stat-cards .stat-ic svg{width:17px!important;height:17px!important}
  body.is-mobile #stat-cards .stat-lbl{
    display:block!important;color:#72839a!important;font:700 7.4px/1.05 Arial,Helvetica,sans-serif!important;
    white-space:normal!important;overflow:hidden!important;max-height:16px!important
  }
  body.is-mobile #stat-cards .stat-val{
    width:auto!important;text-align:left!important;color:#263b56!important;font:700 8px/1.05 Arial,Helvetica,sans-serif!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important
  }
  body.is-mobile #stat-cards .stat-val b{font:800 13px/1 Arial,Helvetica,sans-serif!important;color:#10294b!important}
  body.is-mobile #stat-cards .stat-val span{font:700 6.8px/1 Arial,Helvetica,sans-serif!important;color:#8a99ac!important}
  body.is-mobile #stat-cards-toggle{display:none!important}

  /* Dãy nút nhanh luôn hiện ở mép phải. */
  body.is-mobile{--dcks-quick-right:8px;--dcks-quick-size:42px;--dcks-quick-gap:5px}
  body.is-mobile #mobile-actions-toggle,
  body.is-mobile #gps-fab,
  body.is-mobile #basemap-fab,
  body.is-mobile #dock-fab,
  body.is-mobile #maptool-toggle{
    display:flex!important;opacity:1!important;pointer-events:auto!important;transform:none!important;
    position:fixed!important;right:var(--dcks-quick-right)!important;width:var(--dcks-quick-size)!important;height:var(--dcks-quick-size)!important;
    min-width:var(--dcks-quick-size)!important;border-radius:13px!important;background:rgba(255,255,255,.88)!important;
    color:#244c77!important;border:1px solid rgba(192,212,236,.96)!important;box-shadow:0 5px 17px rgba(31,61,102,.12)!important;
    backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;z-index:1902!important
  }
  body.is-mobile #mobile-actions-toggle{bottom:calc(var(--dcks-mobile-nav-h) + 8px)!important;font-size:22px!important}
  body.is-mobile #gps-fab{bottom:calc(var(--dcks-mobile-nav-h) + 55px)!important}
  body.is-mobile #basemap-fab{bottom:calc(var(--dcks-mobile-nav-h) + 102px)!important}
  body.is-mobile #dock-fab{bottom:calc(var(--dcks-mobile-nav-h) + 149px)!important}
  body.is-mobile #maptool-wrap{
    position:fixed!important;right:var(--dcks-quick-right)!important;bottom:calc(var(--dcks-mobile-nav-h) + 196px)!important;
    top:auto!important;left:auto!important;z-index:1903!important;display:flex!important;flex-direction:row-reverse!important;
    align-items:flex-end!important;gap:5px!important;max-width:calc(100vw - 16px)!important;pointer-events:none!important
  }
  body.is-mobile #maptool-wrap #maptool-toggle{position:static!important;flex:0 0 var(--dcks-quick-size)!important;pointer-events:auto!important;font-size:20px!important}
  body.is-mobile #maptool-wrap #maptool-bar{
    position:static!important;display:flex!important;flex-direction:row!important;gap:3px!important;max-width:calc(100vw - 68px)!important;
    overflow-x:auto!important;overflow-y:hidden!important;padding:4px!important;border-radius:12px!important;
    background:rgba(255,255,255,.94)!important;border:1px solid rgba(192,212,236,.96)!important;
    box-shadow:0 6px 20px rgba(31,61,102,.14)!important;pointer-events:auto!important
  }
  body.is-mobile #maptool-wrap.collapsed #maptool-bar,
  body.is-mobile:not(.mobile-tools-open) #maptool-wrap #maptool-bar{
    width:0!important;max-width:0!important;padding:0!important;border-width:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important
  }
  body.is-mobile.mobile-tools-open #maptool-wrap #maptool-bar{width:auto!important;opacity:1!important;pointer-events:auto!important}
  body.is-mobile #maptool-wrap .maptool{width:34px!important;height:34px!important;min-width:34px!important;flex:0 0 34px!important}

  /* Hộp tọa độ dễ đọc hơn; Z có nguồn rõ ràng. */
  body.is-mobile #mobile-coordinate-box{left:7px!important;right:58px!important;min-height:42px!important;padding:8px 10px!important}
  body.is-mobile #mobile-coordinate-box .mc-readout{gap:7px!important}
  body.is-mobile #mc-label{font-size:10.5px!important;font-weight:800!important}
  body.is-mobile #mc-value{font-size:10.5px!important;font-weight:800!important;letter-spacing:.05px!important}
  body.is-mobile #mc-z{font-size:9.4px!important;min-width:58px!important;padding:3px 6px!important}
  body.is-mobile #mc-z[data-source="dem"]{color:#1768b6!important;background:rgba(38,132,220,.12)!important}
  body.is-mobile #mc-z[data-source="gps"]{color:#17834b!important;background:rgba(31,160,86,.12)!important}
}

@media(max-width:380px){
  body.is-mobile #dcks-mobile-top-cluster{right:62px!important}
  body.is-mobile #stat-cards{gap:3px!important}
  body.is-mobile #stat-cards .stat-card{height:45px!important;min-height:45px!important;padding:4px 5px!important;gap:3px!important}
  body.is-mobile #stat-cards .stat-ic{width:23px!important;height:23px!important;flex-basis:23px!important}
  body.is-mobile #stat-cards .stat-lbl{font-size:6.6px!important}
  body.is-mobile #stat-cards .stat-val b{font-size:11.5px!important}
  body.is-mobile{--dcks-quick-size:39px;--dcks-quick-right:6px}
}


/* DCKS 1.0.16 — bố cục chốt theo yêu cầu mobile. */
@media(max-width:1024px){
  /* Chừa đúng một nút ở góc phải; 3 KPI vẫn luôn hiện và không mất chữ. */
  body.is-mobile #dcks-mobile-top-cluster{
    left:6px!important;
    right:57px!important;
    top:max(6px,env(safe-area-inset-top))!important;
  }
  body.is-mobile #stat-cards{
    grid-template-columns:minmax(0,.98fr) minmax(0,1.16fr) minmax(0,1.06fr)!important;
    gap:4px!important;
  }
  body.is-mobile #stat-cards .stat-card,
  body.is-mobile #stat-cards .stat-card:nth-child(n+3){
    height:51px!important;
    min-height:51px!important;
    padding:5px 5px!important;
    gap:4px!important;
    overflow:hidden!important;
  }
  body.is-mobile #stat-cards .stat-card>div:last-child{
    min-width:0!important;
    flex:1 1 auto!important;
    overflow:visible!important;
  }
  body.is-mobile #stat-cards .stat-ic{
    width:24px!important;
    height:24px!important;
    flex:0 0 24px!important;
    border-radius:8px!important;
  }
  body.is-mobile #stat-cards .stat-ic svg{width:16px!important;height:16px!important}
  body.is-mobile #stat-cards .stat-lbl{
    display:block!important;
    width:100%!important;
    max-height:none!important;
    min-height:16px!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    color:#667b96!important;
    font:700 7.25px/1.12 Arial,Helvetica,sans-serif!important;
    letter-spacing:-.04px!important;
  }
  body.is-mobile #stat-cards .stat-val{
    display:flex!important;
    align-items:baseline!important;
    gap:2px!important;
    min-width:0!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
    margin-top:1px!important;
  }
  body.is-mobile #stat-cards .stat-val b{
    font:800 13px/1 Arial,Helvetica,sans-serif!important;
    letter-spacing:-.2px!important;
  }
  body.is-mobile #stat-cards .stat-val span{
    font:700 6.7px/1 Arial,Helvetica,sans-serif!important;
    flex:0 0 auto!important;
  }

  /* Chỉ dùng nút Công cụ trong maptool-wrap, tránh hai nút trùng nhau. */
  body.is-mobile #mobile-tools-toggle{display:none!important}

  /* Nút Công cụ nằm ở góc phải trên cùng; khi bấm, danh sách xổ thẳng xuống dưới. */
  body.is-mobile #maptool-wrap{
    position:fixed!important;
    top:max(6px,env(safe-area-inset-top))!important;
    right:6px!important;
    bottom:auto!important;
    left:auto!important;
    z-index:1910!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    gap:5px!important;
    width:42px!important;
    max-width:42px!important;
    pointer-events:none!important;
  }
  body.is-mobile #maptool-wrap #maptool-toggle{
    order:1!important;
    position:static!important;
    display:flex!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    flex:0 0 42px!important;
    border-radius:13px!important;
    pointer-events:auto!important;
    font-size:20px!important;
    background:rgba(255,255,255,.91)!important;
    color:#244c77!important;
    border:1px solid rgba(192,212,236,.98)!important;
    box-shadow:0 5px 17px rgba(31,61,102,.13)!important;
  }
  body.is-mobile.mobile-tools-open #maptool-wrap #maptool-toggle{
    background:rgba(36,107,253,.92)!important;
    color:#fff!important;
    border-color:rgba(36,107,253,.95)!important;
  }
  body.is-mobile #maptool-wrap #maptool-bar{
    order:2!important;
    position:static!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:3px!important;
    width:42px!important;
    max-width:42px!important;
    max-height:calc(100dvh - 150px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    padding:4px!important;
    border-radius:13px!important;
    background:rgba(255,255,255,.94)!important;
    border:1px solid rgba(192,212,236,.96)!important;
    box-shadow:0 7px 22px rgba(31,61,102,.16)!important;
    pointer-events:auto!important;
    transform-origin:top right!important;
    transition:opacity .16s ease,transform .16s ease,max-height .18s ease,padding .18s ease!important;
  }
  body.is-mobile #maptool-wrap.collapsed #maptool-bar,
  body.is-mobile:not(.mobile-tools-open) #maptool-wrap #maptool-bar{
    width:42px!important;
    max-width:42px!important;
    max-height:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    border-width:0!important;
    opacity:0!important;
    pointer-events:none!important;
    overflow:hidden!important;
    transform:translateY(-5px) scale(.96)!important;
  }
  body.is-mobile.mobile-tools-open #maptool-wrap:not(.collapsed) #maptool-bar{
    width:42px!important;
    max-width:42px!important;
    max-height:calc(100dvh - 150px)!important;
    padding:4px!important;
    border-width:1px!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  body.is-mobile #maptool-wrap .maptool{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    flex:0 0 32px!important;
    border-radius:9px!important;
  }
  body.is-mobile #maptool-wrap .maptool-sep{
    display:block!important;
    width:25px!important;
    height:1px!important;
    min-height:1px!important;
    margin:1px 0!important;
  }
  body.is-mobile #maptool-wrap #maptool-bar::-webkit-scrollbar{width:3px!important;height:0!important}
  body.is-mobile #maptool-wrap #maptool-bar::-webkit-scrollbar-thumb{background:rgba(67,101,143,.30)!important;border-radius:99px!important}
}

@media(max-width:380px){
  body.is-mobile #dcks-mobile-top-cluster{left:4px!important;right:52px!important}
  body.is-mobile #stat-cards{gap:3px!important;grid-template-columns:minmax(0,.96fr) minmax(0,1.18fr) minmax(0,1.06fr)!important}
  body.is-mobile #stat-cards .stat-card{height:49px!important;min-height:49px!important;padding:4px!important}
  body.is-mobile #stat-cards .stat-lbl{font-size:6.95px!important;line-height:1.12!important}
  body.is-mobile #stat-cards .stat-val b{font-size:12.2px!important}
  body.is-mobile #maptool-wrap{right:4px!important;top:max(4px,env(safe-area-inset-top))!important;width:40px!important;max-width:40px!important}
  body.is-mobile #maptool-wrap #maptool-toggle{width:40px!important;height:40px!important;min-width:40px!important;flex-basis:40px!important}
  body.is-mobile #maptool-wrap #maptool-bar{width:40px!important;max-width:40px!important}
}

@media (max-width:700px){
  .dcks-schema-overlay{padding:6px;align-items:flex-end}
  .dcks-schema-modal,.dcks-source-editor-modal{width:100%;max-height:92vh;border-radius:14px 14px 0 0}
  .dcks-schema-head,.dcks-schema-body,.dcks-schema-foot{padding-left:12px;padding-right:12px}
  .dcks-schema-body .form-grid{grid-template-columns:1fr!important}
  .dcks-source-link-wrap{grid-template-columns:minmax(0,1fr) 44px}
  #admin-layer-permission-section .admin-layer-perm-toolbar{display:grid!important;grid-template-columns:1fr 1fr}
  #admin-layer-permission-section .admin-layer-perm-toolbar .admin-input{grid-column:1/-1}
}
