/* DCKS 1.1.0 — giao diện chức năng, tài liệu và dashboard.
   Tệp được hợp nhất theo đúng thứ tự cascade của bản gốc. */

/* ===== SOURCE: ui-tiles.css ===== */
/* DCKS 1.0 — giao diện quản lý tile và dữ liệu lớn. */
.dcks-package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dcks-package-card{appearance:none;border:1px solid var(--border,#294267);border-radius:14px;background:linear-gradient(145deg,var(--bg2,#10213e),var(--bg1,#0b1730));color:var(--text,#fff);padding:18px;text-align:left;cursor:pointer;min-height:118px;display:flex;flex-direction:column;gap:8px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.dcks-package-card:hover{transform:translateY(-1px);border-color:var(--accent,#4d8dff);box-shadow:0 12px 28px rgba(3,12,28,.28)}
.dcks-package-card b{font-size:14px}.dcks-package-card small{color:var(--text2,#b8c4d8);line-height:1.45}
.dcks-pm-upload{border:1px solid var(--border,#294267);border-radius:12px;padding:12px;margin-bottom:14px;background:color-mix(in srgb,var(--bg2,#10213e) 86%,transparent)}
.dcks-pm-upload .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px}
.dcks-pm-upload label{font-size:11px;color:var(--text2,#b8c4d8)}
.dcks-pm-upload input,.dcks-pm-upload select{display:block;width:100%;margin-top:5px;min-height:38px;border:1px solid var(--border,#294267);border-radius:8px;background:var(--bg1,#0b1730);color:var(--text,#fff);padding:8px 10px}
.dcks-pm-upload .dcks-inline-actions label{display:flex;align-items:center;gap:6px}.dcks-pm-upload .dcks-inline-actions input{width:auto;min-height:0;margin:0}
.layer-row[data-delivery="pmtiles"]::after{content:'PMTiles';font-size:8px;letter-spacing:.05em;color:#d8f3ff;background:#0b6b8a;border:1px solid rgba(125,211,252,.45);border-radius:999px;padding:2px 6px;margin-left:5px}
@media(max-width:760px){.dcks-package-grid{grid-template-columns:1fr}.dcks-package-card{min-height:96px}.dcks-pm-upload .form-grid{grid-template-columns:1fr}.dcks-pm-upload{padding:10px}.dcks-mb-row{align-items:flex-start;flex-wrap:wrap}.dcks-mb-row>div{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){.dcks-package-card{transition:none}.dcks-package-card:hover{transform:none}}

/* ===== SOURCE: ui-publishing.css ===== */
/* DCKS 1.0 — giao diện xuất bản và chỉ mục dữ liệu. */
.dcks-pm-row{align-items:flex-start;gap:12px}
.dcks-pm-main{min-width:0;flex:1}
.dcks-pm-main>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dcks-pm-main small{display:block;margin-top:3px;line-height:1.4}
.dcks-pm-message{color:var(--text3);max-width:850px;white-space:normal}
.dcks-pm-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.dcks-pm-status{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700;border:1px solid transparent}
.dcks-pm-active{background:rgba(34,197,94,.12);color:#15803d;border-color:rgba(34,197,94,.25)}
.dcks-pm-ready{background:rgba(59,130,246,.11);color:#1d4ed8;border-color:rgba(59,130,246,.22)}
.dcks-pm-failed{background:rgba(239,68,68,.11);color:#b91c1c;border-color:rgba(239,68,68,.22)}
@media(max-width:760px){
  .dcks-pm-row{display:block}
  .dcks-pm-actions{justify-content:flex-start;margin-top:10px}
  .dcks-pm-actions .btn{min-height:36px}
}

/* ===== SOURCE: ui-documents.css ===== */
/* DCKS 1.0 — giao diện tài liệu, ảnh và nắn ảnh. */

/* Panel chỉ đường là mô-đun mobile tải theo nhu cầu. Luôn ẩn trước khi CSS/JS của
   mô-đun sẵn sàng để tránh HTML thô xuất hiện ở góc phải trên desktop. */
#mobile-route-panel[hidden],
#mobile-route-panel:not(.dcks-route-ready),
body.is-desktop #mobile-route-panel{
  display:none!important;
}
@media (max-width:1024px){
  body.is-mobile #mobile-route-panel.dcks-route-ready:not([hidden]){
    display:flex!important;
  }
}

/* Tài liệu và ảnh đính kèm */
.dcks-files-intro{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  padding:10px 11px;margin-bottom:9px;border:1px solid var(--border);
  border-radius:11px;background:var(--bg2);
}
.dcks-files-intro b{display:block;font-size:11px;color:var(--text)}
.dcks-files-intro small{display:block;margin-top:3px;font-size:9px;line-height:1.45;color:var(--text3)}
.dcks-file-row{
  display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;
  padding:8px 0;border-bottom:1px solid var(--border);
}
.dcks-file-row:last-child{border-bottom:0}
.dcks-file-icon{font-size:17px;text-align:center}
.dcks-file-meta{min-width:0}
.dcks-file-meta b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--text)}
.dcks-file-meta small{display:block;margin-top:2px;font-size:8.5px;color:var(--text3)}
.dcks-file-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.dcks-doc-preview-box{width:min(980px,94vw);height:min(82vh,780px);display:flex;flex-direction:column}
.dcks-doc-preview-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#111827;overflow:auto}
.dcks-doc-preview-body img{max-width:100%;max-height:100%;object-fit:contain}
.dcks-doc-preview-body iframe{width:100%;height:100%;border:0;background:#fff}
.dcks-doc-empty{padding:13px;border:1px dashed var(--border);border-radius:10px;color:var(--text3);font-size:10px;text-align:center}
.dcks-feature-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.dcks-lazy-note{padding:8px 10px;margin:8px 0;border:1px solid var(--border);border-radius:9px;background:var(--bg2);font-size:9px;color:var(--text3)}

@media(max-width:720px){
  .dcks-file-row{grid-template-columns:22px minmax(0,1fr)}
  .dcks-file-actions{grid-column:1/-1;justify-content:flex-start;padding-left:30px}
  .dcks-doc-preview-box{width:100vw;height:88vh;border-radius:18px 18px 0 0}
}

/* ===== SOURCE: office-preview.css ===== */
/* DCKS 1.0.4 — cửa sổ xem Office giữ bố cục. */
.dcks-office-modal{width:min(1180px,97vw);height:min(92vh,900px)}
.dcks-office-modal .dcks-doc-preview-body{background:#cbd5e1;align-items:stretch;justify-content:stretch}
.dcks-office-frame{display:block;width:100%;height:100%;border:0;background:#fff}
.office-original-note{margin-right:auto;color:var(--text3);font-size:9.5px;line-height:1.35}
.dcks-doc-error small{display:block;margin-top:7px;color:var(--text3);font-size:10px}
@media(max-width:720px){
  .dcks-office-modal{width:100vw;height:94vh;border-radius:16px 16px 0 0}
  .dcks-office-modal .modal-hdr{padding:10px 12px}
  .dcks-office-modal .modal-ftr{gap:6px;padding:8px 10px}
  .office-original-note{display:none}
}

/* ===== SOURCE: ui-runtime.css ===== */
/* DCKS 1.0 — hoàn thiện giao diện runtime. */

/* Giữ đầy đủ tên cơ quan trên desktop nhưng không đẩy vỡ thanh điều hướng. */
@media (min-width:901px){
  #topbar{overflow:visible!important}
  #topbar .logo{flex:0 1 520px!important;width:auto!important;min-width:350px!important;max-width:520px!important;overflow:visible!important}
  #topbar .logo>div:last-child{width:calc(100% - 58px)!important;min-width:0!important;overflow:visible!important}
  #topbar .logo-text{display:block!important;max-width:none!important;overflow:visible!important;white-space:nowrap!important;text-overflow:clip!important;font-size:clamp(16px,1.1vw,20px)!important;line-height:1.12!important;font-weight:700!important;letter-spacing:.2px!important}
  #topbar .logo-ver{display:block!important;max-width:none!important;overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important}
  #topbar .nav{flex:0 0 auto!important;min-width:max-content!important}
  #topbar .tb-right{flex:1 1 auto!important;min-width:0!important;justify-content:flex-end!important}
}
@media (min-width:901px) and (max-width:1450px){
  #topbar .logo{flex-basis:470px!important;max-width:470px!important}
  #topbar #clock{display:none!important}
  #topbar .tb-search{width:36px!important;min-width:36px!important;max-width:36px!important;padding-left:0!important;padding-right:0!important;justify-content:center!important}
  #topbar .tb-search>span,#topbar .tb-search>kbd{display:none!important}
}
@media (min-width:901px) and (max-width:1180px){
  #topbar .logo{flex-basis:390px!important;min-width:330px!important;max-width:390px!important}
  #topbar .logo-text{font-size:13px!important;letter-spacing:0!important}
  #topbar .logo-ver{display:none!important}
}

/* Quy tắc z-index để các mô-đun tùy chọn không tràn lên giao diện chính. */
#map-gl,#map{z-index:0}
#stat-cards{z-index:520}
#left-panel{z-index:540}
#right-panel{z-index:550}
#map-dock{z-index:560}
#map-legend,#quick-filter{z-index:570}
#feat-drawer{z-index:600}
#gsearch-panel,#coord-search-panel{z-index:800}
#mobile-route-panel{z-index:1880}
.modal-ov{z-index:5000}
#toast{z-index:7000}

/* Panel chỉ đường không bao giờ được hiện dưới dạng HTML thô. */
#mobile-route-panel[hidden],
#mobile-route-panel:not(.dcks-route-ready),
html.is-desktop #mobile-route-panel,
body.is-desktop #mobile-route-panel{display:none!important}

/* Công cụ dữ liệu có nhãn rõ ràng, thay cho việc chỉ dùng biểu tượng khó đoán. */
.dcks-data-tool-section{padding-bottom:10px!important}
.dcks-data-tools{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.dcks-data-tools button{
  min-width:0;display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:7px;row-gap:1px;align-items:center;text-align:left;padding:8px;border:1px solid var(--border);
  border-radius:9px;background:var(--bg2);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s,transform .15s
}
.dcks-data-tools button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--bg2));transform:translateY(-1px)}
.dcks-data-tools button>span{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:var(--bg3);font-size:15px}
.dcks-data-tools button>b{font-size:10px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dcks-data-tools button>small{font-size:8px;line-height:1.25;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dcks-data-tools button.is-disabled{opacity:.58}

/* Preview tài liệu: có trạng thái tải, lỗi và điều khiển dễ hiểu. */
.dcks-doc-preview-body{position:relative}
.dcks-doc-loading,.dcks-doc-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:220px;padding:24px;text-align:center;color:var(--text2)}
.dcks-doc-loading:before{content:'';width:28px;height:28px;border:3px solid rgba(148,163,184,.35);border-top-color:var(--accent);border-radius:50%;animation:dcks-spin .8s linear infinite}
.dcks-doc-error b{color:var(--danger);font-size:12px}.dcks-doc-error span{max-width:560px;font-size:10px;line-height:1.5;color:var(--text3)}
@keyframes dcks-spin{to{transform:rotate(360deg)}}

/* Chẩn đoán runtime. */
.dcks-runtime-shell{width:min(920px,94vw);max-height:88vh;display:flex;flex-direction:column}
.dcks-runtime-shell .modal-hdr>div{display:flex;flex-direction:column;gap:3px}.dcks-runtime-shell .modal-hdr small{font-size:9px;color:var(--text3)}
.dcks-runtime-body{overflow:auto;min-height:240px;padding-right:3px}
.dcks-runtime-loading{padding:40px;text-align:center;color:var(--text3)}
.dcks-runtime-summary{display:flex;flex-direction:column;gap:3px;padding:10px 12px;margin-bottom:10px;border:1px solid var(--border);border-radius:10px;background:var(--bg2)}
.dcks-runtime-summary.is-ok{border-color:rgba(34,197,94,.38)}.dcks-runtime-summary.has-issues{border-color:rgba(245,158,11,.48)}
.dcks-runtime-summary b{font-size:11px}.dcks-runtime-summary span{font-size:9px;color:var(--text3)}
.dcks-runtime-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:12px}
.dcks-runtime-grid>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--bg2)}
.dcks-runtime-grid span{font-size:9px;color:var(--text3)}.dcks-runtime-grid b{font-size:10px;text-align:right;overflow-wrap:anywhere}
.dcks-runtime-log{margin-top:10px}.dcks-runtime-log h3{margin:0 0 6px;font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text3)}
.dcks-runtime-log article{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;padding:7px 9px;border-top:1px solid var(--border);font-size:9px}
.dcks-runtime-log article b{color:var(--warn)}.dcks-runtime-log article span{overflow-wrap:anywhere;color:var(--text2)}.dcks-runtime-log p{margin:0;padding:8px;color:var(--text3);font-size:9px}
.dcks-runtime-actions{gap:7px;flex-wrap:wrap}

/* Thông báo bản cập nhật Service Worker. */
#dcks-update-banner{
  position:fixed;left:50%;bottom:42px;transform:translateX(-50%);z-index:6500;display:flex;align-items:center;gap:8px;
  width:min(660px,calc(100vw - 24px));padding:9px 10px;border:1px solid rgba(59,130,246,.45);border-radius:12px;
  background:rgba(9,22,43,.96);color:#fff;box-shadow:0 16px 44px rgba(0,0,0,.32)
}
#dcks-update-banner[hidden]{display:none!important}#dcks-update-banner>span{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
#dcks-update-banner b{font-size:10px}#dcks-update-banner small{font-size:8.5px;color:#b8c5d9}

/* Giao diện bản đồ nhẹ hơn ở màn hình nhỏ. */
@media(max-width:1180px){
  #stat-cards{gap:7px!important}.stat-card{min-width:0!important;padding:7px 9px!important}.stat-card .stat-lbl{font-size:8px!important}.stat-card .stat-val b{font-size:13px!important}
}
@media(max-width:720px){
  body.is-mobile #stat-cards .stat-card:nth-child(3),body.is-mobile #stat-cards .stat-card:nth-child(4){display:none!important}
  body.is-mobile #stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;left:10px!important;right:10px!important;width:auto!important}
  .dcks-runtime-shell{width:100vw;max-width:none;height:88vh;border-radius:18px 18px 0 0!important;margin-top:auto}
  .dcks-runtime-grid{grid-template-columns:1fr}.dcks-runtime-log article{grid-template-columns:72px minmax(0,1fr)}
  #dcks-update-banner{bottom:88px;align-items:flex-start;flex-wrap:wrap}#dcks-update-banner>span{flex-basis:100%}
  .dcks-data-tools{grid-template-columns:1fr}
}
#mms-georef[hidden],#mms-tiles[hidden],.dcks-data-tools button[hidden]{display:none!important}

/* ===== SOURCE: ui-analytics.css ===== */
/* DCKS 1.0 — giao diện thống kê và phân tích. */
:root{
  --font:Arial,Helvetica,sans-serif!important;
  --display:Arial,Helvetica,sans-serif!important;
  --mono:Arial,Helvetica,sans-serif!important;
}
html,body,#app,#app *,button,input,select,textarea,option,table,svg text{
  font-family:Arial,Helvetica,sans-serif!important;
}
body{font-weight:400}
button,.btn,.nav-btn,.dock-hdr,.lpanel-title,.ad-sec-title,.modal-title{font-weight:600!important}
.logo-text,.page-title,.ad-head-title{font-weight:700!important}
b,strong{font-weight:600}

/* 1. Ma trận quy hoạch: không để số lượng và trạng thái chồng lên nhau. */
#right-panel .ad-matrix>div:not(.ad-matrix-row){
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:auto auto!important;
  gap:4px 8px!important;
  align-items:center!important;
  min-width:0!important;
}
#right-panel .ad-matrix>div:not(.ad-matrix-row)>span:first-child{
  grid-column:1!important;grid-row:1!important;min-width:0!important;
  overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
#right-panel .ad-matrix>div:not(.ad-matrix-row)>b{
  grid-column:1/-1!important;grid-row:2!important;text-align:left!important;
  font-size:9px!important;font-weight:500!important;color:var(--text3)!important;
}
#right-panel .ad-matrix>div:not(.ad-matrix-row)>.ad-status{
  grid-column:2!important;grid-row:1!important;justify-self:end!important;
  max-width:112px!important;min-width:72px!important;white-space:normal!important;
  line-height:1.12!important;text-align:center!important;padding:3px 7px!important;
}

/* 2. Tài liệu: nút Xem/Tải tách biệt và không tràn hàng. */
.dcks-file-row{display:grid!important;grid-template-columns:24px minmax(0,1fr) auto!important;gap:8px!important;align-items:center!important}
.dcks-file-meta{min-width:0!important}.dcks-file-meta b{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.dcks-file-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:5px!important;flex-wrap:wrap!important;max-width:230px!important}
.dcks-file-actions .btn{min-width:44px!important;padding:4px 8px!important}
.dcks-doc-preview-box{width:min(1000px,94vw)!important;max-height:90vh!important;display:flex!important;flex-direction:column!important}
.dcks-doc-preview-body{min-height:260px;overflow:auto;background:#fff;color:#172033;border-radius:8px}
.dcks-doc-preview-body>img{display:block;max-width:100%;height:auto;margin:auto}
.dcks-doc-preview-body>iframe{display:block;width:100%;height:68vh;border:0;background:#fff}
.dcks-office-preview{padding:22px 28px;line-height:1.55;color:#172033;background:#fff;min-height:420px}
.dcks-office-preview h1,.dcks-office-preview h2,.dcks-office-preview h3{color:#0f2748;margin:12px 0 7px}
.dcks-office-preview p{margin:0 0 8px;white-space:pre-wrap}
.dcks-office-preview table{border-collapse:collapse;width:100%;font-size:12px;margin:8px 0 18px}
.dcks-office-preview th,.dcks-office-preview td{border:1px solid #cfd8e5;padding:6px 8px;text-align:left;vertical-align:top}
.dcks-office-preview th{background:#edf3fb;font-weight:600}
.dcks-office-preview .sheet-title{position:sticky;top:0;background:#fff;padding:4px 0 8px;font-weight:700;color:#1d4f91;z-index:1}

/* 4. Hộp sửa thuộc tính. */
.feat-props-modal{max-width:calc(100vw - 28px)!important;border-radius:14px!important}
.feat-props-modal-hdr{align-items:flex-start!important}.feat-props-subtitle{font-size:9.5px;color:var(--text3);margin-top:3px}
#feat-props-body{padding:12px 14px!important;overflow:auto!important}
.feat-props-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:10px;position:sticky;top:0;z-index:2;background:var(--bg1);padding:2px 0 8px}
.feat-props-toolbar input{flex:1;min-width:0;height:34px;border-radius:8px!important}
.feat-props-hint{font-size:9px;color:var(--text3);white-space:nowrap}
#feat-props-body .props-header{display:grid!important;grid-template-columns:34px minmax(150px,.8fr) minmax(220px,1.4fr) 34px!important;gap:8px!important;padding:7px 8px!important;position:sticky;top:44px;z-index:2;background:var(--bg2)!important;border:1px solid var(--border)!important;border-radius:8px!important}
.feat-prop-row{display:grid!important;grid-template-columns:34px minmax(150px,.8fr) minmax(220px,1.4fr) 34px!important;gap:8px!important;align-items:start!important;padding:7px 8px!important;border-bottom:1px solid rgba(125,155,215,.12)!important}
.feat-prop-row:hover{background:rgba(77,141,255,.045)}
.feat-prop-index{display:flex;align-items:center;justify-content:center;height:32px;color:var(--text3);font-size:9px;border-radius:7px;background:var(--bg2)}
.feat-prop-row input,.feat-prop-row textarea{width:100%!important;min-width:0!important;box-sizing:border-box!important;border:1px solid var(--border)!important;border-radius:8px!important;background:var(--bg2)!important;color:var(--text)!important;padding:7px 9px!important;font-size:11px!important;line-height:1.35!important}
.feat-prop-row textarea{resize:vertical;min-height:34px;max-height:160px}
.feat-prop-row .key-input{color:var(--accent2)!important;font-weight:600!important}
.feat-prop-del-btn{width:32px!important;height:32px!important;border-radius:8px!important;border:1px solid rgba(239,68,68,.24)!important;background:rgba(239,68,68,.08)!important;color:#ff6b7d!important;font-size:16px!important;padding:0!important}
.feat-prop-del-btn:hover{background:rgba(239,68,68,.18)!important}
.feat-props-count{font-size:9.5px;color:var(--text3);align-self:center}
.feat-prop-row.is-filtered{display:none!important}.feat-prop-row.is-duplicate .key-input{border-color:var(--danger)!important;box-shadow:0 0 0 2px rgba(239,68,68,.12)}

/* 6. Bộ lọc nhanh: trong, gọn, chọn phạm vi layer. */
#quick-filter{max-width:calc(100vw - 28px)!important;padding:6px 8px!important;gap:6px!important;background:rgba(9,24,48,.72)!important;backdrop-filter:blur(8px)!important;border-color:rgba(125,155,215,.28)!important}
#quick-filter .qf-lbl{font-size:9px!important;white-space:nowrap!important}
#quick-filter select{max-width:190px!important;min-width:105px!important;height:30px!important;padding:4px 7px!important;background:rgba(17,39,74,.88)!important}
#quick-filter #qf-layer{max-width:230px!important}
#quick-filter button{height:30px!important;padding:4px 9px!important;background:rgba(17,39,74,.88)!important}

/* 8. Chú giải có phạm vi layer và cuộn rõ ràng. */
#map-legend{width:250px!important;max-width:min(300px,calc(100vw - 24px))!important}
#map-legend .mlg-hdr{gap:6px!important;padding:7px 8px!important}
#map-legend .mlg-hdr>span:first-child{font-weight:600!important;flex:0 0 auto}
#map-legend .mlg-hdr>span:last-child{flex:1;min-width:0;justify-content:flex-end}
#map-legend select{min-width:0!important;max-width:132px!important;height:26px!important;padding:2px 5px!important;background:rgba(17,39,74,.92)!important;border:1px solid var(--border)!important;border-radius:6px!important;color:var(--text)!important;font-size:9px!important}
#map-legend #mlg-layer{max-width:145px!important}
#map-legend .mlg-body{max-height:360px!important;overflow:auto!important}

/* 9-10. Thanh công cụ mặc định thu gọn, trong hơn và gọn hơn. */
#maptool-wrap{position:absolute;top:12px;left:calc(var(--lp-w) + 18px);z-index:575;display:flex;align-items:flex-start;gap:5px;transition:left .2s ease}
body:has(#left-panel.collapsed) #maptool-wrap{left:10px}
#maptool-wrap #maptool-bar{position:static!important;display:flex!important;flex-direction:column!important;gap:3px!important;padding:4px!important;border-radius:11px!important;background:rgba(8,25,51,.63)!important;border:1px solid rgba(142,174,222,.28)!important;box-shadow:0 8px 22px rgba(2,8,24,.20)!important;backdrop-filter:blur(7px)!important;max-height:720px;opacity:1;overflow:visible;transform:none;transition:max-height .2s ease,opacity .14s ease,transform .2s ease,padding .2s ease}
#maptool-wrap.collapsed #maptool-bar{max-height:0!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important;transform:translateX(-7px)!important;padding-top:0!important;padding-bottom:0!important;border-width:0!important}
#maptool-wrap .maptool{width:32px!important;height:32px!important;border-radius:8px!important;background:rgba(17,42,78,.78)!important;border:1px solid rgba(140,170,216,.16)!important}
#maptool-wrap .maptool:hover{background:rgba(37,83,143,.92)!important;border-color:rgba(123,174,255,.52)!important}
#maptool-wrap .maptool.active{background:linear-gradient(135deg,#2874e8,#2b91c8)!important;color:#fff!important}
#maptool-wrap .maptool-sep{height:1px!important;margin:1px 4px!important;background:rgba(145,175,216,.18)!important}
#maptool-toggle{width:25px;height:38px;border:1px solid rgba(142,174,222,.28);border-radius:8px;background:rgba(8,25,51,.70);color:#d7e7ff;font-size:20px;line-height:1;cursor:pointer;box-shadow:0 8px 22px rgba(2,8,24,.18);backdrop-filter:blur(7px)}
#maptool-toggle:hover{background:rgba(37,83,143,.92);color:#fff}

/* 11. Thước tỷ lệ dạng thước, tương phản cao. */
.leaflet-control-scale{margin-left:12px!important;margin-bottom:43px!important}
.leaflet-control-scale-line{
  min-width:105px!important;height:24px!important;display:flex!important;align-items:flex-start!important;justify-content:center!important;
  padding:3px 8px 0!important;border:0!important;border-bottom:3px solid #12233f!important;border-left:2px solid #12233f!important;border-right:2px solid #12233f!important;
  border-radius:0 0 5px 5px!important;background:rgba(255,255,255,.92)!important;color:#10213d!important;text-shadow:none!important;
  font-size:10px!important;font-weight:700!important;box-shadow:0 3px 10px rgba(7,18,37,.18)!important;backdrop-filter:none!important;position:relative!important;
}
.leaflet-control-scale-line:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:8px;background:repeating-linear-gradient(90deg,#12233f 0 1px,transparent 1px 20%);pointer-events:none}

/* 12. Panel bên phải/dock sát mép màn hình và scrollbar gọn. */
body.is-desktop #map-dock{right:max(2px,env(safe-area-inset-right))!important;top:10px!important;bottom:38px!important;scrollbar-gutter:auto!important;padding-right:0!important}
body.is-desktop #right-panel{right:max(2px,env(safe-area-inset-right))!important;top:8px!important;bottom:38px!important;scrollbar-gutter:auto!important}
#map-dock,#right-panel .rpanel-body,#map-legend .mlg-body{scrollbar-width:thin;scrollbar-color:rgba(116,151,205,.58) transparent}
#map-dock::-webkit-scrollbar,#right-panel .rpanel-body::-webkit-scrollbar,#map-legend .mlg-body::-webkit-scrollbar{width:7px}
#map-dock::-webkit-scrollbar-thumb,#right-panel .rpanel-body::-webkit-scrollbar-thumb,#map-legend .mlg-body::-webkit-scrollbar-thumb{background:rgba(116,151,205,.58);border-radius:9px;border:2px solid transparent;background-clip:padding-box}

/* Mặc định layer do Admin thiết lập. */
.layer-default-badge{font-size:8px;color:#8fd6ff;background:rgba(14,165,233,.12);border:1px solid rgba(14,165,233,.24);padding:2px 5px;border-radius:999px;white-space:nowrap;flex-shrink:0}
.layer-default-badge.admin{color:#ffe19a;background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.26)}

/* Trạng thái thống kê và phạm vi dữ liệu. */
.ad-stat-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:9px}
.ad-stat-controls .wide{grid-column:1/-1}.ad-stat-controls label{display:flex;flex-direction:column;gap:4px;font-size:8.8px;color:var(--text3)}
.ad-stat-controls select,.ad-stat-controls input{width:100%;min-width:0;height:31px;background:rgba(19,35,63,.95)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:7px!important;padding:4px 7px!important;font-size:10px!important}
.ad-stat-scope-note{font-size:9px;color:var(--text3);margin:-2px 0 9px;line-height:1.4}
.ad-stat-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:9px}

@media(max-width:900px){
  #quick-filter{left:10px!important;right:10px!important;transform:none!important;overflow-x:auto!important;justify-content:flex-start!important}
  #quick-filter .qf-lbl{display:none!important}
  #map-legend{right:8px!important;bottom:92px!important}
  .feat-props-modal{width:calc(100vw - 14px)!important;max-height:92vh!important}
  #feat-props-body .props-header{grid-template-columns:28px minmax(110px,.8fr) minmax(160px,1.2fr) 32px!important}
  .feat-prop-row{grid-template-columns:28px minmax(110px,.8fr) minmax(160px,1.2fr) 32px!important}
}
@media(max-width:620px){
  #feat-props-body .props-header{display:none!important}.feat-prop-row{grid-template-columns:28px minmax(0,1fr) 32px!important;grid-template-rows:auto auto!important}
  .feat-prop-row .key-input{grid-column:2;grid-row:1}.feat-prop-row .value-input{grid-column:2;grid-row:2}.feat-prop-row .feat-prop-index{grid-column:1;grid-row:1/3;height:100%}.feat-prop-row .feat-prop-del-btn{grid-column:3;grid-row:1/3;align-self:center}
  .ad-stat-controls{grid-template-columns:1fr}
  .ad-stat-controls .wide{grid-column:auto}
}

/* Bổ sung hoàn thiện v1.0.0 */
#right-panel .ad-matrix-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:7px!important;padding:10px!important}
#right-panel .ad-matrix-main{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;align-items:center!important;min-width:0!important}
#right-panel .ad-matrix-name{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important}
#right-panel .ad-matrix-main .ad-status{position:static!important;max-width:112px!important;min-width:72px!important;white-space:normal!important;text-align:center!important;line-height:1.12!important;justify-self:end!important}
#right-panel .ad-matrix-meta{display:flex!important;gap:12px!important;align-items:center!important;flex-wrap:wrap!important;font-size:9px!important;color:var(--text3)!important}

.dcks-stat-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 9px}
.dcks-stat-kpis>div,.dcks-stat-summary-grid>div{border:1px solid rgba(96,165,250,.16);border-radius:8px;background:rgba(15,34,66,.56);padding:7px 8px;min-width:0}
.dcks-stat-kpis span,.dcks-stat-summary-grid span{display:block;font-size:8.5px;color:var(--text3);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcks-stat-kpis b,.dcks-stat-summary-grid b{display:block;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis}
.dcks-stat-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.dcks-stat-summary-grid>div:first-child{grid-column:1/-1}
.dcks-chart-switch{display:flex;gap:5px;margin-bottom:9px;flex-wrap:wrap}
.dcks-chart-unit{font-size:9px;color:var(--text3);margin-top:6px;text-align:right}

/* Tiêu đề cùng hệ Arial, cùng độ đậm; cấp bậc thể hiện bằng cỡ chữ thay vì đậm quá mức. */
.ad-sec-title,.dock-hdr,.lpanel-title,.rp-sec-hdr{font-weight:600!important;letter-spacing:.25px!important}
.ad-head-title,.modal-title,.page-title{font-weight:700!important;letter-spacing:0!important}
.ad-tab,.nav-btn,.btn{font-weight:600!important}

/* Dock và panel phải bám sát mép phải trên mọi chiều rộng desktop. */
body.is-desktop #map-dock{right:0!important;border-radius:12px 0 0 12px!important}
body.is-desktop #right-panel{right:0!important;border-radius:14px 0 0 14px!important}
body.is-desktop #dock-toggle-btn{right:0}

/* Thước tỷ lệ kiểu thước chia đoạn rõ, không bị lòa trên nền sáng. */
.leaflet-control-scale-line:before{content:"";position:absolute;left:-2px;right:-2px;bottom:-3px;height:7px;background:linear-gradient(90deg,#12233f 0 25%,#fff 25% 50%,#12233f 50% 75%,#fff 75% 100%);border:1px solid #12233f;box-sizing:border-box;z-index:0}
.leaflet-control-scale-line:after{z-index:1;background:repeating-linear-gradient(90deg,#12233f 0 1px,transparent 1px 25%)!important}

/* Nhãn mặc định giúp Admin biết công tắc đang quyết định trạng thái mở trang. */
body[data-role="admin"] .layer-default-badge.admin:after{content:" mở trang"}

@media(max-width:900px){
  #maptool-wrap{top:10px!important;left:8px!important;right:auto!important;max-width:calc(100vw - 16px)!important;z-index:1880!important}
  #maptool-wrap #maptool-bar{flex-direction:row!important;max-width:calc(100vw - 54px)!important;max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important}
  #maptool-wrap.collapsed #maptool-bar{max-width:0!important;max-height:none!important;padding-left:0!important;padding-right:0!important}
  #maptool-toggle{height:34px!important;flex:0 0 25px!important}
  .dcks-file-row{grid-template-columns:22px minmax(0,1fr)!important}
  .dcks-file-actions{grid-column:2!important;justify-content:flex-start!important;max-width:none!important}
  .dcks-stat-kpis{grid-template-columns:repeat(3,minmax(72px,1fr))}
}
@media(max-width:520px){
  .dcks-stat-kpis{grid-template-columns:1fr 1fr}.dcks-stat-kpis>div:last-child{grid-column:1/-1}
  .dcks-stat-summary-grid{grid-template-columns:1fr}
  .dcks-stat-summary-grid>div:first-child{grid-column:auto}
}

/* DCKS 1.1.10 — ký hiệu điểm và nối Excel/CSV vào lớp GeoJSON. */
.dcks-point-div-icon{background:transparent!important;border:0!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important}
.dcks-point-glyph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:var(--dcks-point-font,16px);line-height:1;color:var(--dcks-point-color,#4d8dff);-webkit-text-stroke:var(--dcks-point-stroke-width,1px) var(--dcks-point-stroke,#fff);text-shadow:0 0 1px var(--dcks-point-stroke,#fff);font-family:Arial,"Segoe UI Symbol",sans-serif;font-weight:800;transform:translateY(-1px)}
.point-style-preview{display:flex;align-items:center;justify-content:center;min-height:52px;border:1px dashed var(--border2);border-radius:8px;background:var(--bg2)}
.point-style-preview span{font-family:Arial,"Segoe UI Symbol",sans-serif;font-weight:800;line-height:1;-webkit-text-stroke:1px #fff;text-shadow:0 0 1px #fff}

.dj-modal{width:min(980px,96vw)!important;max-height:94vh!important}
.dj-modal #dj-body{max-height:calc(94vh - 126px);overflow:auto;padding:12px 14px}
.dj-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg2);font-size:12px}
.dj-topline span{font-size:10.5px;color:var(--text3)}
.dj-grid,.dj-subgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.dj-options-line{display:flex;gap:14px;flex-wrap:wrap;margin:9px 0 12px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:rgba(18,35,64,.5)}
.dj-options-line label{display:flex;align-items:flex-start;gap:6px;font-size:10.5px;line-height:1.35;color:var(--text2)}
.dj-section{margin-top:11px;border:1px solid var(--border);border-radius:9px;background:rgba(12,28,52,.48);overflow:hidden}
.dj-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-bottom:1px solid var(--border);background:rgba(30,52,87,.58)}
.dj-section-head b{display:block;font-size:12px}.dj-section-head small{display:block;margin-top:2px;font-size:9.5px;color:var(--text3);font-weight:400}
.dj-policy{display:flex;align-items:center;gap:8px}.dj-policy select{min-width:235px}.dj-policy span{font-size:9.5px;color:var(--accent2);white-space:nowrap}
.dj-map-head,.dj-map-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(170px,.8fr) minmax(210px,1fr);gap:8px;align-items:center}
.dj-map-head{padding:7px 10px;font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.35px;border-bottom:1px solid var(--border)}
.dj-mapping-list{max-height:330px;overflow:auto}
.dj-map-row{position:relative;padding:7px 10px;border-bottom:1px solid rgba(101,129,171,.13)}
.dj-map-row:last-child{border-bottom:0}
.dj-source-field{min-width:0}.dj-source-field b{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dj-source-field small{display:block;margin-top:2px;font-size:9px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dj-map-row select,.dj-map-row input{width:100%;min-width:0;height:32px}
.dj-map-arrow{position:absolute;right:5px;color:var(--text3);font-size:10px;display:none}
.dj-unmatched-grid{padding:10px}.dj-subgrid{padding:0 10px 10px}.dj-note{margin:0 10px 10px;padding:8px 9px;border-radius:7px;background:var(--bg2);font-size:10px;color:var(--text3)}
.dj-preview{margin-top:11px;border:1px solid var(--border);border-radius:9px;background:var(--bg2);padding:10px}
.dj-preview-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.dj-preview-cards>div{padding:8px;border:1px solid rgba(96,165,250,.18);border-radius:7px;background:rgba(15,34,66,.6)}
.dj-preview-cards b{display:block;font-size:16px;color:var(--text)}.dj-preview-cards span{display:block;margin-top:2px;font-size:9px;color:var(--text3)}.dj-preview-cards .ok b{color:var(--success)}.dj-preview-cards .warn b{color:var(--warn)}
.dj-preview-note{margin-top:7px;font-size:10px;line-height:1.4;color:var(--text2)}.dj-error{color:var(--danger);font-size:10.5px}.dj-empty{padding:14px;text-align:center;color:var(--text3);font-size:10px}
@media(max-width:760px){
  .dj-modal{width:calc(100vw - 10px)!important;max-height:96vh!important}.dj-modal #dj-body{max-height:calc(96vh - 122px);padding:9px}
  .dj-grid,.dj-subgrid{grid-template-columns:1fr}.dj-options-line{gap:8px}.dj-section-head{align-items:flex-start;flex-direction:column}.dj-policy{width:100%;flex-direction:column;align-items:stretch}.dj-policy select{min-width:0;width:100%}
  .dj-map-head{display:none}.dj-map-row{grid-template-columns:1fr;gap:5px;padding:9px}.dj-source-field small{white-space:normal}.dj-preview-cards{grid-template-columns:1fr 1fr}.dj-topline{align-items:flex-start;flex-direction:column}
}


/* DCKS 1.1.10 — ký hiệu điểm theo thuộc tính và liên kết tài liệu gốc. */
.point-style-fields{margin-top:9px}
.point-shape-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:190px;overflow:auto;margin:8px 0;padding:7px;border:1px solid var(--border);border-radius:8px;background:rgba(9,25,49,.4)}
.point-map-row{display:grid;grid-template-columns:minmax(0,1fr) 118px;align-items:center;gap:7px;padding:5px 6px;border:1px solid rgba(93,124,171,.18);border-radius:6px;background:var(--bg2);font-size:10.5px}
.point-map-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.point-map-row select{height:30px;min-width:0}
.point-map-empty{grid-column:1/-1;padding:8px;text-align:center;color:var(--text3);font-size:10px}.point-size-range{margin:7px 0}
.dcks-source-links .ad-sec-title>span{float:right;color:var(--text3);font-size:9px;font-weight:500}
.dcks-source-link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;margin-bottom:6px;border:1px solid var(--border);border-radius:8px;background:var(--bg2);color:var(--text);text-decoration:none}
.dcks-source-link:hover{border-color:var(--accent);background:rgba(45,102,191,.16)}.dcks-source-link>span{min-width:0}.dcks-source-link b{display:block;font-size:10.5px}.dcks-source-link small{display:block;margin-top:2px;color:var(--text3);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dcks-source-link em{flex:0 0 auto;color:var(--accent2);font-size:9.5px;font-style:normal;font-weight:600}
@media(max-width:720px){.point-shape-map{grid-template-columns:1fr;max-height:230px}.point-map-row{grid-template-columns:minmax(0,1fr) 116px}.dcks-source-link{align-items:flex-start;flex-direction:column}.dcks-source-link em{align-self:flex-end}}

/* DCKS 1.1.10 — quản trị gọn, phân quyền theo nhóm và quản lý lớp có phân trang. */
#dcks-admin-workbench{padding:10px 12px!important}
#dcks-admin-workbench .admin-section-title{margin-bottom:8px!important}
.admin-compact-actions{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap}
.admin-quick-action{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg2);color:var(--text);font-family:var(--font);font-size:11px;line-height:1.2;white-space:nowrap;cursor:pointer;transition:.15s ease}
.admin-quick-action:hover{border-color:var(--accent);background:rgba(61,123,253,.09)}
.admin-quick-action.primary{border-color:rgba(61,123,253,.55);background:rgba(61,123,253,.12)}
.admin-quick-action>span{font-size:14px;line-height:1}.admin-quick-action>b{font-size:11px;font-weight:700}
.admin-system-details{margin:0 0 10px;border:1px solid var(--border);border-radius:11px;background:var(--bg1);overflow:hidden}
.admin-system-details>summary{display:flex;align-items:center;gap:7px;padding:9px 12px;color:var(--text);font-size:11.5px;font-weight:700;cursor:pointer;list-style:none;user-select:none}
.admin-system-details>summary::-webkit-details-marker{display:none}.admin-system-details>summary::after{content:'▾';margin-left:auto;color:var(--text3);transition:.15s}.admin-system-details:not([open])>summary::after{transform:rotate(-90deg)}
.admin-system-details[open]>summary{border-bottom:1px solid var(--border)}
.admin-system-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:9px;padding:9px}
.admin-system-details .dcks-security-panel{padding:0 9px 9px}.admin-system-details .dcks-security-panel>.admin-section-title{margin:0 0 8px}
.admin-compact-note{font-size:10.5px;line-height:1.45;color:var(--text2);margin-bottom:7px}
.admin-inline-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.admin-sync-summary{margin-top:8px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.025);font-size:10px;line-height:1.45}
.admin-select,.admin-input{min-height:32px;padding:5px 8px;border:1px solid var(--border);border-radius:7px;background:var(--bg2);color:var(--text);font:500 10.5px var(--font);outline:none}
.admin-select:focus,.admin-input:focus{border-color:var(--accent)}.admin-input::placeholder{color:var(--text3)}
.admin-system-grid .admin-select{width:100%}
.admin-system-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.admin-system-meta>span{padding:4px 7px;border:1px solid var(--border);border-radius:999px;color:var(--text3);font-size:9.5px}.admin-system-meta b{color:var(--text)}

.admin-layer-perm-toolbar,.admin-layer-table-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0}
.admin-layer-perm-toolbar .admin-input,.admin-layer-table-toolbar .admin-input{min-width:180px;flex:1 1 210px}
.admin-filter-count,.admin-title-meta{color:var(--text3);font-size:10px;font-weight:600;white-space:nowrap}
.admin-title-meta{margin-left:auto}
.admin-global-role-bulk,.admin-layer-group-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.025);font-size:9.5px;color:var(--text2)}
.admin-global-role-bulk{margin-bottom:8px}.admin-global-role-bulk>span,.admin-layer-group-bulk>span{font-weight:700;color:var(--text)}
.admin-global-role-bulk label,.admin-layer-group-bulk label{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;cursor:pointer}
.admin-layer-permission-groups{display:grid;gap:8px;max-height:560px;overflow:auto;padding-right:2px}
.admin-layer-perm-group{border:1px solid var(--border);border-radius:9px;background:rgba(255,255,255,.018);overflow:hidden}
.admin-layer-perm-group>summary{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;color:var(--text);font-size:10.5px;font-weight:700;list-style:none}
.admin-layer-perm-group>summary::-webkit-details-marker{display:none}.admin-layer-perm-group>summary::before{content:'▸';color:var(--text3);transition:.15s}.admin-layer-perm-group[open]>summary::before{transform:rotate(90deg)}
.admin-group-count{margin-left:auto;padding:2px 6px;border-radius:999px;background:var(--bg3);color:var(--text3);font-size:9px}
.admin-layer-group-bulk{margin:0 8px 7px}
.admin-table-scroll{overflow:auto;max-width:100%}
.admin-layer-perm-table{width:100%;min-width:980px}
.admin-layer-perm-table th,.admin-layer-perm-table td{text-align:center;vertical-align:middle}
.admin-layer-perm-table .admin-layer-name-cell{text-align:left;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-layer-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle;flex:0 0 auto}
.admin-source-badge,.admin-public-badge,.admin-group-badge{display:inline-flex;align-items:center;max-width:210px;padding:3px 7px;border:1px solid var(--border);border-radius:999px;font-size:9px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-source-badge{color:var(--accent2);background:rgba(34,211,238,.07)}
.admin-public-badge.is-public{color:var(--success);border-color:rgba(34,197,94,.28);background:rgba(34,197,94,.08)}
.admin-public-badge.is-warning{color:var(--warn);border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.08)}
.admin-public-badge.is-private{color:var(--text3);background:rgba(148,163,184,.06)}
.admin-group-badge{color:var(--text2);background:var(--bg2)}

.admin-layer-table-toolbar{margin-top:0;padding:7px 8px;border:1px solid var(--border);border-radius:9px;background:rgba(255,255,255,.02)}
.admin-page-size{display:inline-flex;align-items:center;gap:5px;color:var(--text2);font-size:10px;white-space:nowrap}.admin-page-size .admin-select{min-width:72px}
.admin-pagination{display:inline-flex;align-items:center;gap:5px;margin-left:auto}.admin-pagination span{min-width:64px;text-align:center;color:var(--text2);font-size:10px}
.admin-layer-management-table{width:100%;min-width:1040px}.admin-layer-management-table td{vertical-align:middle}.admin-layer-management-table td:first-child{min-width:190px}
.admin-muted-cell{font-size:10px;color:var(--text3)}.admin-row-actions{display:flex;align-items:center;gap:4px;white-space:nowrap}
.admin-layer-footer-actions{margin-top:9px}

@media(max-width:900px){
  .admin-system-grid{grid-template-columns:1fr}
  .admin-layer-permission-groups{max-height:480px}
}
@media(max-width:600px){
  .admin-compact-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .admin-quick-action{min-width:0;padding:6px 4px;font-size:9.5px}.admin-quick-action>b{font-size:9.5px}.admin-quick-action>span{font-size:13px}
  .admin-layer-perm-toolbar>*{flex:1 1 140px}.admin-layer-perm-toolbar .btn{min-height:32px}
  .admin-global-role-bulk,.admin-layer-group-bulk{align-items:flex-start}
  .admin-pagination{margin-left:0}
}

/* ═══ DCKS 1.1.10 — sửa link gốc, cấu trúc trường và phân quyền lớp ═══ */
.dcks-source-link-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch;margin:5px 0}
.dcks-source-link-wrap .dcks-source-link{margin:0;min-width:0}
.dcks-source-link-edit{align-self:stretch;min-width:48px}
.dcks-source-link-add{margin-left:auto}
.dcks-schema-overlay{position:fixed;inset:0;z-index:10080;background:rgba(2,10,28,.66);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:18px}
.dcks-schema-modal{width:min(680px,calc(100vw - 24px));max-height:min(86vh,760px);display:flex;flex-direction:column;background:var(--panel,#0e1d38);border:1px solid var(--border,#29436a);border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.45);overflow:hidden}
.dcks-source-editor-modal{width:min(720px,calc(100vw - 24px))}
.dcks-schema-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--border);background:var(--bg2)}
.dcks-schema-head>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.dcks-schema-head b{font-size:15px;color:var(--text);line-height:1.25}
.dcks-schema-head small{font-size:11.5px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcks-schema-body{padding:15px 17px;overflow:auto;display:flex;flex-direction:column;gap:13px}
.dcks-schema-body [hidden]{display:none!important}
.dcks-schema-body .fg label{font-size:11.5px}
.dcks-schema-body input,.dcks-schema-body select,.dcks-schema-body textarea{font-size:13px;min-height:38px}
.dcks-schema-body textarea{resize:vertical;line-height:1.45;padding:9px 10px}
.dcks-schema-note{font-size:11.5px;line-height:1.45;color:var(--text2);background:rgba(77,141,255,.08);border:1px solid rgba(77,141,255,.2);border-radius:8px;padding:9px 10px;margin-top:8px}
.dcks-schema-note.is-danger{color:#fecaca;background:rgba(239,68,68,.09);border-color:rgba(239,68,68,.25)}
.dcks-schema-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 17px;border-top:1px solid var(--border);background:var(--bg2)}
#admin-layer-permission-section.mode-group .admin-layer-perm-detail{display:none}
#admin-layer-permission-section.mode-group .admin-layer-perm-group>summary{cursor:default;pointer-events:none}
#admin-layer-permission-section.mode-group .admin-layer-perm-group>summary::marker{content:''}
#admin-layer-permission-section.mode-group .admin-layer-group-bulk{border-top:0}
#admin-layer-permission-section.mode-layer .admin-layer-perm-detail{display:block}
#admin-layer-permission-section.mode-layer .admin-layer-group-bulk{display:none}
#admin-layer-permission-section .admin-layer-perm-group[hidden]{display:none!important}

/* DCKS 1.1.10 — chú giải có liên kết trực tiếp tới lớp/đối tượng */
.mlg-row.mlg-link,.mlg-title.mlg-title-link{width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.mlg-row.mlg-link:hover,.mlg-title.mlg-title-link:hover{background:rgba(61,123,253,.12);color:var(--accent)}
.mlg-title.mlg-title-link{display:flex;align-items:center;justify-content:space-between;padding:5px 4px}
.mlg-open{font-size:12px;color:var(--accent);margin-left:6px}

/* Giao diện sáng — dùng chung desktop/mobile, do Admin chọn mặc định */
body[data-theme="light"]{
  --bg:#eef3f9;--bg1:#ffffff;--bg2:#f7f9fc;--bg3:#edf3fb;--bg4:#e3ecf8;
  --border:rgba(30,64,110,.13);--border2:rgba(30,64,110,.23);--border3:rgba(30,64,110,.36);
  --text:#17243b;--text2:#526783;--text3:#7b8da5;
  --glass:rgba(255,255,255,.88);--glass2:rgba(247,250,255,.82);
  --shadow:0 14px 38px rgba(40,67,105,.16);
}
body[data-theme="light"] #auth-screen{background:radial-gradient(ellipse at 50% -10%,rgba(61,123,253,.12),transparent 55%),#eef3f9}
body[data-theme="light"] #auth-screen.overlay{background:rgba(225,234,246,.88)}
body[data-theme="light"] .auth-card{box-shadow:0 24px 64px rgba(40,67,105,.20)}
body[data-theme="light"] input,body[data-theme="light"] select,body[data-theme="light"] textarea{color:var(--text)}
body[data-theme="light"] .leaflet-control,body[data-theme="light"] .maplibregl-ctrl-group{filter:none}

/* Đăng nhập/đăng ký gọn hơn */
.auth-card{padding:24px 28px;width:430px}
.auth-logo{margin-bottom:16px}
.auth-logo-icon{width:50px;height:50px;margin-bottom:8px}
.auth-logo-name{font-size:18px;letter-spacing:1.7px}
.auth-logo-sub{margin-top:4px;line-height:1.35}
.auth-tabs{margin-bottom:16px}
.auth-tab{padding:8px}
.auth-field{margin-bottom:10px}
.auth-field label{margin-bottom:4px}
.auth-field input,.auth-field select{padding:9px 12px}
.auth-btn{padding:10px;margin-top:4px}
.auth-divider{margin:11px 0}
#auth-guest-note{margin-top:10px!important}
#auth-register .form-grid{gap:8px}
#auth-register .auth-field{margin-bottom:9px}
@media(max-height:720px){.auth-card{max-height:94vh;overflow:auto}.auth-logo-icon{width:42px;height:42px}.auth-logo-name{font-size:16px}.auth-logo-sub{display:none}}

/* ═══ DCKS 1.1.10 — Light theme hoàn chỉnh trắng · xanh · cam ═══ */
body[data-theme="light"]{
  color-scheme:light;
  --bg:#f4f8fd;--bg1:#ffffff;--bg2:#f8fbff;--bg3:#eef5ff;--bg4:#e2edfb;
  --border:#d7e4f4;--border2:#bed2eb;--border3:#91afd5;
  --accent:#1769d2;--accent2:#1598b7;--accent3:#f08a24;--accent4:#d9363e;
  --text:#10294d;--text2:#49627f;--text3:#6e829c;
  --success:#198754;--warn:#e57d12;--danger:#d9363e;--purple:#7158c7;
  --glass:rgba(255,255,255,.94);--glass2:rgba(248,251,255,.94);
  --shadow:0 10px 30px rgba(39,83,136,.12);
  background:var(--bg);color:var(--text);
}
body[data-theme="light"],body[data-theme="light"] #app,body[data-theme="light"] #workspace{background:var(--bg);color:var(--text)}
body[data-theme="light"] #topbar{background:#fff;border-color:var(--border);box-shadow:0 2px 12px rgba(31,76,130,.08)}
body[data-theme="light"] #topbar::after{background:linear-gradient(90deg,var(--accent) 0 220px,var(--accent3) 220px 300px,transparent 300px)}
body[data-theme="light"] .logo-mark,body[data-theme="light"] .auth-logo-icon{background:linear-gradient(145deg,#1769d2,#0e4e9f);border-color:#8eb4e5;color:#fff}
body[data-theme="light"] .nav-btn:hover{background:#eaf3ff;color:#124f9b}
body[data-theme="light"] .nav-btn.active{background:linear-gradient(135deg,#1769d2,#2584eb);color:#fff;box-shadow:0 5px 14px rgba(23,105,210,.22)}
body[data-theme="light"] .nav-badge{background:var(--accent3);color:#fff}
body[data-theme="light"] .user-pill{background:#f5f9ff;border-color:var(--border)}
body[data-theme="light"] .user-avatar{background:linear-gradient(145deg,#1769d2,#0e4e9f)}
body[data-theme="light"] #user-dropdown{background:#fff;border-color:var(--border);box-shadow:var(--shadow)}

body[data-theme="light"] #left-panel,body[data-theme="light"] .right-panel,body[data-theme="light"] .panel,body[data-theme="light"] .dock,
body[data-theme="light"] .modal,body[data-theme="light"] .modal-card,body[data-theme="light"] .modal-content,
body[data-theme="light"] .admin-section,body[data-theme="light"] .admin-card,body[data-theme="light"] .admin-action-card,
body[data-theme="light"] .analysis-panel,body[data-theme="light"] .ad-panel,body[data-theme="light"] .info-panel,
body[data-theme="light"] .dcks-schema-modal,body[data-theme="light"] .mobile-sheet,body[data-theme="light"] .bottom-sheet{
  background:#fff;color:var(--text);border-color:var(--border);box-shadow:var(--shadow)
}
body[data-theme="light"] .lpanel-top,body[data-theme="light"] .dock-hdr,body[data-theme="light"] .panel-header,
body[data-theme="light"] .modal-header,body[data-theme="light"] .dcks-schema-head,body[data-theme="light"] .dcks-schema-foot,
body[data-theme="light"] .admin-section-title,body[data-theme="light"] .section-head{
  background:#f4f8fe;color:#163d70;border-color:var(--border)
}
body[data-theme="light"] .lpanel-title,body[data-theme="light"] .dock-hdr,body[data-theme="light"] .panel-title,
body[data-theme="light"] .admin-section-title,body[data-theme="light"] h1,body[data-theme="light"] h2,body[data-theme="light"] h3,
body[data-theme="light"] h4,body[data-theme="light"] strong,body[data-theme="light"] b{color:#15365f}
body[data-theme="light"] .muted,body[data-theme="light"] .hint,body[data-theme="light"] .desc,body[data-theme="light"] .subtext,
body[data-theme="light"] small,body[data-theme="light"] .text-muted,body[data-theme="light"] .admin-note{color:var(--text2);opacity:1}

body[data-theme="light"] input,body[data-theme="light"] select,body[data-theme="light"] textarea,
body[data-theme="light"] .search-input,body[data-theme="light"] .admin-select,body[data-theme="light"] .form-control{
  background:#fff;color:var(--text);border-color:#bfd2e9;box-shadow:inset 0 1px 1px rgba(34,74,120,.03)
}
body[data-theme="light"] input::placeholder,body[data-theme="light"] textarea::placeholder{color:#7f91a8;opacity:1}
body[data-theme="light"] input:focus,body[data-theme="light"] select:focus,body[data-theme="light"] textarea:focus,
body[data-theme="light"] .search-input:focus{border-color:#2b78d0;box-shadow:0 0 0 3px rgba(43,120,208,.12);outline:0}
body[data-theme="light"] select option{background:#fff;color:var(--text)}
body[data-theme="light"] input:disabled,body[data-theme="light"] select:disabled,body[data-theme="light"] textarea:disabled{background:#edf2f8;color:#8290a2}

body[data-theme="light"] .btn-primary{background:linear-gradient(135deg,#1769d2,#247fe5);color:#fff}
body[data-theme="light"] .btn-secondary{background:linear-gradient(135deg,#1598b7,#21acc8);color:#fff}
body[data-theme="light"] .btn-warn{background:#fff4e8;color:#b65b06;border-color:#f3be83}
body[data-theme="light"] .btn-ghost{background:#fff;color:#315474;border-color:#c7d8eb}
body[data-theme="light"] .btn-ghost:hover{background:#edf5ff;color:#1769d2;border-color:#75a8df}
body[data-theme="light"] .btn-danger{background:#fff0f1;color:#c62d36;border-color:#efafb4}
body[data-theme="light"] .btn-ai{background:#f4efff;color:#6749bd;border-color:#cfc0ef}
body[data-theme="light"] .btn:focus-visible,body[data-theme="light"] button:focus-visible{outline:3px solid rgba(23,105,210,.24);outline-offset:2px}

body[data-theme="light"] .tab,body[data-theme="light"] .auth-tab,body[data-theme="light"] .ad-tab,
body[data-theme="light"] .panel-tab,body[data-theme="light"] .analysis-tab{color:#4b6380;background:transparent}
body[data-theme="light"] .tab:hover,body[data-theme="light"] .auth-tab:hover,body[data-theme="light"] .ad-tab:hover{background:#edf5ff;color:#1769d2}
body[data-theme="light"] .tab.active,body[data-theme="light"] .auth-tab.active,body[data-theme="light"] .ad-tab.active,
body[data-theme="light"] .panel-tab.active,body[data-theme="light"] .analysis-tab.active{background:linear-gradient(135deg,#1769d2,#247fe5);color:#fff}
body[data-theme="light"] .chip,body[data-theme="light"] .badge,body[data-theme="light"] .tag{background:#edf5ff;color:#245b96;border-color:#c8dcf2}
body[data-theme="light"] .badge-warning,body[data-theme="light"] .chip-warning{background:#fff1e2;color:#b85d08;border-color:#f1bd85}

body[data-theme="light"] table{color:var(--text);background:#fff;border-color:var(--border)}
body[data-theme="light"] thead,body[data-theme="light"] th{background:#eaf2fd;color:#183e70;border-color:#cbdcef}
body[data-theme="light"] td{border-color:#e1eaf5;color:#274461}
body[data-theme="light"] tbody tr:nth-child(even){background:#f8fbff}
body[data-theme="light"] tbody tr:hover{background:#edf5ff}
body[data-theme="light"] .pagination button,body[data-theme="light"] .admin-pagination button{background:#fff;color:#315474;border-color:#c8d9eb}
body[data-theme="light"] .pagination button.active,body[data-theme="light"] .admin-pagination button.active{background:#1769d2;color:#fff;border-color:#1769d2}

body[data-theme="light"] .layer-item,body[data-theme="light"] .group-item,body[data-theme="light"] .admin-layer-perm-group,
body[data-theme="light"] .admin-layer-row,body[data-theme="light"] .admin-quick-action,body[data-theme="light"] .admin-action-card{
  background:#fff;border-color:#d6e3f2;color:var(--text)
}
body[data-theme="light"] .layer-item:hover,body[data-theme="light"] .group-item:hover,body[data-theme="light"] .admin-quick-action:hover{background:#f1f7ff;border-color:#9dbde1}
body[data-theme="light"] .layer-item.active,body[data-theme="light"] .group-item.active{background:#eaf3ff;border-color:#5b97d8}
body[data-theme="light"] .admin-action-card>small,body[data-theme="light"] .admin-quick-action small{color:#60758f!important;opacity:1!important}

body[data-theme="light"] .leaflet-popup-content-wrapper,body[data-theme="light"] .leaflet-popup-tip,
body[data-theme="light"] .maplibregl-popup-content{background:#fff;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow)}
body[data-theme="light"] .leaflet-control,body[data-theme="light"] .maplibregl-ctrl-group,
body[data-theme="light"] .maplibregl-ctrl-group button{background:#fff;color:#1a4f84;border-color:var(--border);box-shadow:0 3px 12px rgba(35,78,128,.12)}
body[data-theme="light"] .maplibregl-ctrl-icon{filter:none}
body[data-theme="light"] .mlg-wrap,body[data-theme="light"] .map-legend,body[data-theme="light"] .legend-panel,
body[data-theme="light"] .coord-box,body[data-theme="light"] .map-toolbar{background:rgba(255,255,255,.96);color:var(--text);border-color:var(--border);box-shadow:var(--shadow)}
body[data-theme="light"] .mlg-title,body[data-theme="light"] .legend-title{color:#16477e}
body[data-theme="light"] .mlg-row.mlg-link:hover,body[data-theme="light"] .mlg-title.mlg-title-link:hover{background:#edf5ff;color:#1769d2}
body[data-theme="light"] .mlg-open{color:var(--accent3)}

body[data-theme="light"] .toast,body[data-theme="light"] .notification{background:#fff;color:var(--text);border-color:var(--border);box-shadow:var(--shadow)}
body[data-theme="light"] .toast.ok,body[data-theme="light"] .notification.success{border-left:4px solid var(--success)}
body[data-theme="light"] .toast.warn,body[data-theme="light"] .notification.warning{border-left:4px solid var(--accent3)}
body[data-theme="light"] .toast.err,body[data-theme="light"] .notification.error{border-left:4px solid var(--danger)}

body[data-theme="light"] #auth-screen{background:linear-gradient(135deg,rgba(23,105,210,.10),transparent 42%),linear-gradient(315deg,rgba(240,138,36,.08),transparent 38%),#f4f8fd}
body[data-theme="light"] #auth-screen.overlay{background:rgba(238,245,253,.91)}
body[data-theme="light"] .auth-card{background:#fff;border-color:#c8daed;border-top:3px solid #1769d2;box-shadow:0 22px 55px rgba(39,83,136,.18)}
body[data-theme="light"] .auth-tabs{background:#edf4fd;border-color:#d2e0f0}
body[data-theme="light"] .auth-field label{color:#4d6683}
body[data-theme="light"] .auth-guest{background:#fff;color:#315474;border-color:#c6d8eb}
body[data-theme="light"] .auth-guest:hover{background:#edf5ff;color:#1769d2;border-color:#76a9df}
body[data-theme="light"] .auth-divider::before,body[data-theme="light"] .auth-divider::after{background:#d8e4f1}

body[data-theme="light"] ::-webkit-scrollbar-thumb{background:#b9cce2;border:2px solid #f4f8fd}
body[data-theme="light"] ::-webkit-scrollbar-track{background:#f4f8fd}
body[data-theme="light"] *{scrollbar-color:#b9cce2 #f4f8fd}

/* Tăng khả năng đọc ở theme sáng */
body[data-theme="light"] .admin-action-card>small,body[data-theme="light"] .admin-note,body[data-theme="light"] .dock-sub,
body[data-theme="light"] .panel-subtitle,body[data-theme="light"] .layer-meta,body[data-theme="light"] .ad-muted{font-size:max(11px,1em);line-height:1.45}
body[data-theme="light"] [style*="color:#5f7398"],body[data-theme="light"] [style*="color: #5f7398"],
body[data-theme="light"] [style*="color:#7b8da5"],body[data-theme="light"] [style*="color: #7b8da5"]{color:#627790!important}
body[data-theme="light"] [style*="opacity:.5"],body[data-theme="light"] [style*="opacity: .5"],
body[data-theme="light"] [style*="opacity:.6"],body[data-theme="light"] [style*="opacity: .6"]{opacity:.82!important}

@media(max-width:760px){
  body[data-theme="light"] .mobile-bottom-nav,body[data-theme="light"] #mobile-bottom-nav{background:rgba(255,255,255,.97);border-color:#d4e1f0;box-shadow:0 -5px 20px rgba(38,78,124,.10)}
  body[data-theme="light"] .mobile-nav-item{color:#5a718d}
  body[data-theme="light"] .mobile-nav-item.active{color:#1769d2;background:#eaf3ff}
  body[data-theme="light"] .mobile-tool-card{background:#fff;border-color:#d5e3f2;color:#173b67}
  body[data-theme="light"] .mobile-tool-card:hover{background:#edf5ff;border-color:#8fb4df}
}

/* ═══ DCKS 1.1.11 — Light theme trắng chủ đạo, tiêu đề xanh/cam, tương phản đầy đủ ═══ */
body[data-theme="light"]{
  --bg:#f5f8fc;--bg1:#ffffff;--bg2:#ffffff;--bg3:#f3f7fc;--bg4:#e8f0fa;
  --border:#d3e0ef;--border2:#b9cee5;--border3:#89a9ca;
  --text:#17283f;--text2:#4d637d;--text3:#697f98;
  --accent:#155fae;--accent2:#168aa5;--accent3:#ef8b1f;
  background:#f5f8fc!important;color:var(--text)!important;
}
body[data-theme="light"] #workspace,
body[data-theme="light"] #map-page,
body[data-theme="light"] #map-wrapper,
body[data-theme="light"] .page,
body[data-theme="light"] .page-body{background:#f5f8fc!important;color:var(--text)!important}

/* Panel và card: trắng thực sự */
body[data-theme="light"] #left-panel,
body[data-theme="light"] #right-panel,
body[data-theme="light"] #right-panel .rpanel-body,
body[data-theme="light"] .panel,
body[data-theme="light"] .dock,
body[data-theme="light"] .modal,
body[data-theme="light"] .modal-card,
body[data-theme="light"] .modal-content,
body[data-theme="light"] .rp-section,
body[data-theme="light"] .ad-section,
body[data-theme="light"] .ad-head,
body[data-theme="light"] .ad-tabs,
body[data-theme="light"] .ad-summary-band>div,
body[data-theme="light"] .ad-kpis>div,
body[data-theme="light"] .ad-matrix>div,
body[data-theme="light"] .ad-alerts>div,
body[data-theme="light"] .ad-layer-list>div,
body[data-theme="light"] .ad-legal-grid>div,
body[data-theme="light"] .admin-section,
body[data-theme="light"] .admin-card,
body[data-theme="light"] .admin-action-card{
  background:#fff!important;color:var(--text)!important;border-color:var(--border)!important;
  text-shadow:none!important;
}

/* Thanh tiêu đề xanh, điểm nhấn cam */
body[data-theme="light"] #right-panel .rpanel-top,
body[data-theme="light"] .panel-header,
body[data-theme="light"] .modal-header,
body[data-theme="light"] .page-hdr,
body[data-theme="light"] .admin-section-title,
body[data-theme="light"] .section-head{
  background:linear-gradient(90deg,#114f91 0%,#1768b8 78%,#ef8b1f 100%)!important;
  color:#fff!important;border-color:#0e4a88!important;
}
body[data-theme="light"] #right-panel .rpanel-title,
body[data-theme="light"] #right-panel #rp-title,
body[data-theme="light"] .panel-header *,
body[data-theme="light"] .modal-header *,
body[data-theme="light"] .page-hdr *,
body[data-theme="light"] .admin-section-title *{color:#fff!important}
body[data-theme="light"] .lpanel-top{
  background:#fff!important;color:#163e6c!important;border-bottom:3px solid #ef8b1f!important;
}
body[data-theme="light"] .lpanel-title{color:#143b67!important}

/* Bảng điều hành phân tích */
body[data-theme="light"] #right-panel{background:#fff!important;border-color:#b9cee5!important;box-shadow:-4px 0 18px rgba(32,73,116,.15)!important}
body[data-theme="light"] #right-panel .rpanel-body{background:#f6f9fd!important}
body[data-theme="light"] #right-panel .ad-head{
  background:#fff!important;border:1px solid #c9d9eb!important;border-left:5px solid #ef8b1f!important;
}
body[data-theme="light"] #right-panel .ad-head-title{color:#153c68!important}
body[data-theme="light"] #right-panel .ad-head-sub{color:#5b7189!important}
body[data-theme="light"] #right-panel .ad-tabs{background:#eaf2fc!important;border-color:#ccdbec!important}
body[data-theme="light"] #right-panel .ad-tab{color:#355675!important;background:transparent!important;opacity:1!important}
body[data-theme="light"] #right-panel .ad-tab:hover{background:#dcecff!important;color:#0f579f!important}
body[data-theme="light"] #right-panel .ad-tab.active{background:#1768b8!important;color:#fff!important;box-shadow:0 3px 10px rgba(23,104,184,.22)!important}
body[data-theme="light"] #right-panel .ad-sec-title,
body[data-theme="light"] #right-panel .rp-sec-hdr{
  background:#e9f2fc!important;color:#164f88!important;border-color:#c9daed!important;
  border-left:4px solid #ef8b1f!important;
}
body[data-theme="light"] #right-panel .ad-summary-band>div,
body[data-theme="light"] #right-panel .ad-kpis>div,
body[data-theme="light"] #right-panel .ad-section,
body[data-theme="light"] #right-panel .rp-section{
  background:#fff!important;border-color:#cfddec!important;color:#17283f!important;
}
body[data-theme="light"] #right-panel .ad-summary-band span,
body[data-theme="light"] #right-panel .ad-kpis span,
body[data-theme="light"] #right-panel .ad-info-grid label,
body[data-theme="light"] #right-panel .info-k,
body[data-theme="light"] #right-panel small{color:#566d86!important;opacity:1!important}
body[data-theme="light"] #right-panel .ad-summary-band b,
body[data-theme="light"] #right-panel .ad-kpis b,
body[data-theme="light"] #right-panel .ad-info-grid span,
body[data-theme="light"] #right-panel .info-v{color:#153c68!important}
body[data-theme="light"] #right-panel input,
body[data-theme="light"] #right-panel select,
body[data-theme="light"] #right-panel textarea{
  background:#fff!important;color:#17283f!important;border-color:#aec6df!important;
}
body[data-theme="light"] #right-panel input::placeholder,
body[data-theme="light"] #right-panel textarea::placeholder{color:#73879d!important;opacity:1!important}

/* Danh sách lớp */
body[data-theme="light"] #left-panel .search-wrap,
body[data-theme="light"] #left-panel .layer-list,
body[data-theme="light"] #left-panel .cat-body{background:#fff!important}
body[data-theme="light"] #left-panel .layer-item{background:#fff!important;color:#162d48!important;border-color:#e0e8f2!important}
body[data-theme="light"] #left-panel .layer-item:hover{background:#edf5ff!important}
body[data-theme="light"] #left-panel .layer-name{color:#17395f!important}
body[data-theme="light"] #left-panel .layer-count,
body[data-theme="light"] #left-panel .layer-meta{color:#60758d!important;opacity:1!important}
body[data-theme="light"] #left-panel .cat-header{background:#eaf2fc!important;color:#164f88!important;border-left:4px solid #ef8b1f!important}
body[data-theme="light"] #left-panel .cat-header:hover{background:#dcecff!important}
body[data-theme="light"] #left-panel .search-input{background:#fff!important;color:#17283f!important;border-color:#b8cde3!important}
body[data-theme="light"] #left-panel .search-input::placeholder{color:#74879d!important;opacity:1!important}

/* Nút, chip, badge */
body[data-theme="light"] .btn-primary{background:#1768b8!important;color:#fff!important;border-color:#125a9f!important}
body[data-theme="light"] .btn-primary:hover{background:#0f579f!important}
body[data-theme="light"] .btn-warn{background:#ef8b1f!important;color:#fff!important;border-color:#d97508!important}
body[data-theme="light"] .btn-ghost{background:#fff!important;color:#214b73!important;border-color:#bcd0e5!important}
body[data-theme="light"] .btn-ghost:hover{background:#eaf3fd!important;color:#0f579f!important}
body[data-theme="light"] .chip,
body[data-theme="light"] .badge,
body[data-theme="light"] .tag{background:#edf4fc!important;color:#1c568b!important;border-color:#c5d8ec!important}
body[data-theme="light"] .chip.active,
body[data-theme="light"] .badge.active{background:#1768b8!important;color:#fff!important}

/* Chữ và nội dung chung */
body[data-theme="light"] p,
body[data-theme="light"] label,
body[data-theme="light"] td,
body[data-theme="light"] li,
body[data-theme="light"] .form-help,
body[data-theme="light"] .dock-sub,
body[data-theme="light"] .panel-subtitle{color:#405a75!important;opacity:1!important}
body[data-theme="light"] h1,
body[data-theme="light"] h2,
body[data-theme="light"] h3,
body[data-theme="light"] h4,
body[data-theme="light"] b,
body[data-theme="light"] strong{color:#153c68}
body[data-theme="light"] [style*="color:var(--text3)"],
body[data-theme="light"] [style*="color: var(--text3)"]{color:#60758d!important}
body[data-theme="light"] [style*="opacity:.4"],
body[data-theme="light"] [style*="opacity: .4"],
body[data-theme="light"] [style*="opacity:.5"],
body[data-theme="light"] [style*="opacity: .5"],
body[data-theme="light"] [style*="opacity:.6"],
body[data-theme="light"] [style*="opacity: .6"]{opacity:.88!important}

/* Form, bảng, popup, chú giải */
body[data-theme="light"] input,
body[data-theme="light"] select,
body[data-theme="light"] textarea{background:#fff!important;color:#17283f!important;border-color:#b8cde3!important}
body[data-theme="light"] table{background:#fff!important;color:#17283f!important}
body[data-theme="light"] thead,
body[data-theme="light"] th{background:#155fae!important;color:#fff!important;border-color:#0f518f!important}
body[data-theme="light"] tbody tr:nth-child(even){background:#f5f9fd!important}
body[data-theme="light"] tbody tr:hover{background:#e8f3ff!important}
body[data-theme="light"] .map-legend,
body[data-theme="light"] .legend-panel,
body[data-theme="light"] .mlg-wrap,
body[data-theme="light"] .leaflet-popup-content-wrapper,
body[data-theme="light"] .maplibregl-popup-content{background:#fff!important;color:#17283f!important;border-color:#c4d6e9!important}
body[data-theme="light"] .legend-title,
body[data-theme="light"] .mlg-title{color:#15558f!important;border-bottom:2px solid #ef8b1f!important}

/* Thanh KPI nổi trên bản đồ */
body[data-theme="light"] .map-kpi,
body[data-theme="light"] .map-stat-card,
body[data-theme="light"] #map-summary>div{background:rgba(255,255,255,.96)!important;color:#17395f!important;border-color:#c6d8eb!important;box-shadow:0 5px 16px rgba(38,76,117,.13)!important}
body[data-theme="light"] .map-kpi b,
body[data-theme="light"] .map-stat-card b{color:#155fae!important}

/* ═══ DCKS 1.1.13 — Rà soát đồng bộ theme sáng: xanh · cam · chữ rõ ═══ */
body[data-theme="light"]{
  --lt-blue:#1a67c8;
  --lt-blue2:#0e5ab7;
  --lt-blue3:#2b7fe0;
  --lt-cyan:#1aa4c7;
  --lt-orange:#ef8b1f;
  --lt-orange2:#f4a74a;
  --lt-ink:#173a63;
  --lt-ink2:#3f5d7e;
  --lt-line:#c7d9ee;
  --lt-line2:#b6cde7;
  --lt-paper:#ffffff;
  --lt-paper2:#f6faff;
}

/* Tổng quát: bỏ chữ lòa */
body[data-theme="light"] #left-panel,
body[data-theme="light"] #right-panel,
body[data-theme="light"] #map-legend,
body[data-theme="light"] #map-statusbar,
body[data-theme="light"] .stat-card,
body[data-theme="light"] .dock-sec,
body[data-theme="light"] .panel,
body[data-theme="light"] .card,
body[data-theme="light"] .modal,
body[data-theme="light"] .modal-card,
body[data-theme="light"] .modal-content,
body[data-theme="light"] .analysis-panel,
body[data-theme="light"] .info-panel,
body[data-theme="light"] .admin-section,
body[data-theme="light"] .admin-card,
body[data-theme="light"] .admin-action-card,
body[data-theme="light"] .chip,
body[data-theme="light"] .badge,
body[data-theme="light"] .tag{
  text-shadow:none!important;
}
body[data-theme="light"] .muted,
body[data-theme="light"] .hint,
body[data-theme="light"] .desc,
body[data-theme="light"] .subtext,
body[data-theme="light"] small,
body[data-theme="light"] .text-muted,
body[data-theme="light"] .layer-meta,
body[data-theme="light"] .layer-count,
body[data-theme="light"] .msb-k,
body[data-theme="light"] .msb-credit,
body[data-theme="light"] .nav-sub,
body[data-theme="light"] .logo-ver{
  color:var(--lt-ink2)!important;
  opacity:1!important;
}

/* (1) Topbar */
body[data-theme="light"] #topbar{
  background:linear-gradient(135deg,var(--lt-blue2),var(--lt-blue3))!important;
  border-bottom:1px solid rgba(12,67,138,.32)!important;
  box-shadow:0 8px 22px rgba(19,84,165,.20)!important;
}
body[data-theme="light"] #topbar::after{
  height:3px!important;
  background:linear-gradient(90deg,var(--lt-orange) 0 320px,var(--lt-orange2) 320px 410px,rgba(255,255,255,.12) 410px 100%)!important;
  opacity:1!important;
}
body[data-theme="light"] #topbar .logo-text,
body[data-theme="light"] #topbar .logo-ver,
body[data-theme="light"] #topbar .logo-title,
body[data-theme="light"] #topbar .logo-sub{
  color:#fff!important;
}
body[data-theme="light"] #topbar .logo-mark,
body[data-theme="light"] #topbar .logo-mark.custom-logo{
  border-color:rgba(255,255,255,.45)!important;
  box-shadow:0 4px 14px rgba(2,18,45,.20)!important;
}
body[data-theme="light"] #topbar .nav-btn,
body[data-theme="light"] #topbar .tb-right>button,
body[data-theme="light"] #topbar .tb-search,
body[data-theme="light"] #topbar .tb-bell,
body[data-theme="light"] #topbar .user-pill{
  background:rgba(255,255,255,.94)!important;
  color:var(--lt-ink)!important;
  border:1px solid rgba(255,255,255,.62)!important;
  box-shadow:0 3px 10px rgba(10,45,97,.10)!important;
}
body[data-theme="light"] #topbar .nav-btn:hover,
body[data-theme="light"] #topbar .tb-right>button:hover,
body[data-theme="light"] #topbar .tb-search:hover,
body[data-theme="light"] #topbar .tb-bell:hover,
body[data-theme="light"] #topbar .user-pill:hover{
  background:#fff7ef!important;
  border-color:#f0c28a!important;
  color:#b96508!important;
}
body[data-theme="light"] #topbar .nav-btn.active{
  background:linear-gradient(135deg,var(--lt-orange),var(--lt-orange2))!important;
  border-color:#d97c10!important;
  color:#fff!important;
  box-shadow:0 6px 16px rgba(239,139,31,.28)!important;
}
body[data-theme="light"] #topbar .nav-badge{
  background:var(--lt-orange)!important;
  color:#fff!important;
}

/* (3) Left panel and floating KPI toolbar */
body[data-theme="light"] #left-panel{
  background:#fff!important;
  border-color:var(--lt-line2)!important;
  box-shadow:0 10px 26px rgba(27,78,146,.12)!important;
}
body[data-theme="light"] #left-panel .lpanel-top{
  background:linear-gradient(135deg,var(--lt-blue2),var(--lt-blue3))!important;
  border-bottom:1px solid rgba(12,67,138,.25)!important;
}
body[data-theme="light"] #left-panel .lpanel-title,
body[data-theme="light"] #left-panel .lpanel-top .btn,
body[data-theme="light"] #left-panel .lpanel-top button,
body[data-theme="light"] #left-panel .lpanel-top .icon-btn{
  color:#fff!important;
}
body[data-theme="light"] #left-panel .lpanel-top{
  position:relative;
}
body[data-theme="light"] #left-panel .lpanel-top::before{
  content:"";
  position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--lt-orange),var(--lt-orange2));
}
body[data-theme="light"] #left-panel .search-wrap,
body[data-theme="light"] #left-panel .layer-list,
body[data-theme="light"] #left-panel .cat-body{background:#fff!important}
body[data-theme="light"] #left-panel .layer-item{
  background:#fff!important;color:var(--lt-ink)!important;border-color:#dfe8f3!important
}
body[data-theme="light"] #left-panel .layer-item:hover{background:#f4f9ff!important}
body[data-theme="light"] #left-panel .layer-name{color:var(--lt-ink)!important}
body[data-theme="light"] #left-panel .cat-header{
  background:#edf5ff!important;color:#1b5c98!important;border-left:4px solid var(--lt-orange)!important
}
body[data-theme="light"] #left-panel .cat-header:hover{background:#dfeeff!important}
body[data-theme="light"] .stat-card,
body[data-theme="light"] .map-float-card,
body[data-theme="light"] .kpi-card,
body[data-theme="light"] .toolbar-chip{
  background:linear-gradient(180deg,#ffffff,#f7fbff)!important;
  border:1px solid var(--lt-line2)!important;
  box-shadow:0 8px 18px rgba(28,74,140,.12)!important;
  color:var(--lt-ink)!important;
}
body[data-theme="light"] .stat-card b,
body[data-theme="light"] .stat-card .stat-value,
body[data-theme="light"] .kpi-card b{color:var(--lt-blue2)!important}
body[data-theme="light"] .stat-card small,
body[data-theme="light"] .kpi-card small{color:var(--lt-ink2)!important;opacity:1!important}
body[data-theme="light"] .stat-card::before,
body[data-theme="light"] .kpi-card::before{
  background:linear-gradient(180deg,var(--lt-orange),var(--lt-orange2))!important;
}

/* (2) Legend */
body[data-theme="light"] #map-legend{
  background:#fff!important;
  border-color:var(--lt-line2)!important;
  box-shadow:0 12px 28px rgba(24,73,139,.16)!important;
}
body[data-theme="light"] #map-legend .mlg-hdr{
  background:linear-gradient(135deg,var(--lt-blue2),var(--lt-blue3))!important;
  color:#fff!important;
  border-bottom:1px solid rgba(12,67,138,.18)!important;
  position:relative;
}
body[data-theme="light"] #map-legend .mlg-hdr::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--lt-orange),var(--lt-orange2));
}
body[data-theme="light"] #map-legend .mlg-hdr *,
body[data-theme="light"] #map-legend .mlg-hdr button,
body[data-theme="light"] #map-legend .mlg-hdr .btn{
  color:#fff!important;
}
body[data-theme="light"] #map-legend .mlg-hdr .chip,
body[data-theme="light"] #map-legend .mlg-hdr .badge,
body[data-theme="light"] #map-legend .mlg-hdr .tag{
  background:rgba(255,255,255,.14)!important;
  border-color:rgba(255,255,255,.24)!important;
  color:#fff!important;
}
body[data-theme="light"] #map-legend .mlg-body,
body[data-theme="light"] #map-legend .mlg-items,
body[data-theme="light"] #map-legend-body{background:#fff!important;color:var(--lt-ink)!important}
body[data-theme="light"] #map-legend .legend-item,
body[data-theme="light"] #map-legend .mlg-item,
body[data-theme="light"] #map-legend .mlg-row{color:var(--lt-ink)!important}
body[data-theme="light"] #map-legend a,
body[data-theme="light"] #map-legend button.linklike{color:#0f5da9!important}

/* Right analysis / dock panels */
body[data-theme="light"] #right-panel,
body[data-theme="light"] .right-panel{
  background:#fff!important;border-color:var(--lt-line2)!important;box-shadow:-6px 0 18px rgba(28,74,140,.12)!important;
}
body[data-theme="light"] #right-panel .rpanel-top,
body[data-theme="light"] .panel-header,
body[data-theme="light"] .dock-hdr,
body[data-theme="light"] .modal-header,
body[data-theme="light"] .admin-section-title,
body[data-theme="light"] .section-head{
  background:linear-gradient(135deg,var(--lt-blue2),var(--lt-blue3))!important;
  color:#fff!important;
  border-bottom:1px solid rgba(12,67,138,.18)!important;
  position:relative;
}
body[data-theme="light"] #right-panel .rpanel-top::before,
body[data-theme="light"] .panel-header::before,
body[data-theme="light"] .dock-hdr::before,
body[data-theme="light"] .modal-header::before,
body[data-theme="light"] .admin-section-title::before,
body[data-theme="light"] .section-head::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--lt-orange),var(--lt-orange2));
}
body[data-theme="light"] #right-panel .rpanel-title,
body[data-theme="light"] #right-panel .rpanel-top *,
body[data-theme="light"] .panel-header *,
body[data-theme="light"] .dock-hdr *,
body[data-theme="light"] .modal-header *,
body[data-theme="light"] .admin-section-title *,
body[data-theme="light"] .section-head *{color:#fff!important}
body[data-theme="light"] #right-panel .rpanel-body,
body[data-theme="light"] #right-panel .ad-section,
body[data-theme="light"] #right-panel .rp-section,
body[data-theme="light"] .analysis-panel,
body[data-theme="light"] .ad-panel,
body[data-theme="light"] .info-panel{
  background:#f7fbff!important;color:var(--lt-ink)!important
}
body[data-theme="light"] #right-panel .ad-tab,
body[data-theme="light"] .analysis-tab,
body[data-theme="light"] .panel-tab{color:#355675!important;opacity:1!important}
body[data-theme="light"] #right-panel .ad-tab.active,
body[data-theme="light"] .analysis-tab.active,
body[data-theme="light"] .panel-tab.active{background:#1768b8!important;color:#fff!important}
body[data-theme="light"] #right-panel input,
body[data-theme="light"] #right-panel select,
body[data-theme="light"] #right-panel textarea,
body[data-theme="light"] #right-panel option{background:#fff!important;color:var(--lt-ink)!important;border-color:var(--lt-line2)!important}
body[data-theme="light"] #right-panel input::placeholder,
body[data-theme="light"] #right-panel textarea::placeholder{color:#7086a0!important;opacity:1!important}

/* (4) Bottom status + quick tools */
body[data-theme="light"] #map-statusbar{
  background:linear-gradient(135deg,var(--lt-blue2),var(--lt-blue3))!important;
  border-top:1px solid rgba(12,67,138,.18)!important;
  box-shadow:0 -4px 16px rgba(18,72,138,.16)!important;
  color:#fff!important;
}
body[data-theme="light"] #map-statusbar .msb-cell,
body[data-theme="light"] #map-statusbar .msb-k,
body[data-theme="light"] #map-statusbar .msb-credit,
body[data-theme="light"] #map-statusbar b,
body[data-theme="light"] #map-statusbar span{color:#fff!important}
body[data-theme="light"] #map-statusbar .msb-cell{border-color:rgba(255,255,255,.16)!important}
body[data-theme="light"] .bottom-toolbar .btn,
body[data-theme="light"] #btn-tg-legend,
body[data-theme="light"] #btn-tg-filter,
body[data-theme="light"] #legend-pill,
body[data-theme="light"] .quick-toggle,
body[data-theme="light"] .toolbar-btn,
body[data-theme="light"] .map-action-btn{
  background:#1768b8!important;color:#fff!important;border-color:#125a9f!important;box-shadow:0 4px 10px rgba(23,104,184,.18)!important
}
body[data-theme="light"] .bottom-toolbar .btn:hover,
body[data-theme="light"] #btn-tg-legend:hover,
body[data-theme="light"] #btn-tg-filter:hover,
body[data-theme="light"] #legend-pill:hover,
body[data-theme="light"] .quick-toggle:hover,
body[data-theme="light"] .toolbar-btn:hover,
body[data-theme="light"] .map-action-btn:hover{
  background:var(--lt-orange)!important;border-color:#d97508!important;color:#fff!important
}

/* Chốt: không để nền đen chữ đen */
body[data-theme="light"] [style*="background:#000"],
body[data-theme="light"] [style*="background: #000"],
body[data-theme="light"] [style*="background-color:#000"],
body[data-theme="light"] [style*="background-color: #000"]{
  color:#fff!important;
}

/* ═══ DCKS 1.1.14 — sweep đồng bộ theme sáng: bỏ đen/xám, link xanh-cam ═══ */
body[data-theme="light"]{
  --th-blue:#1565c0;
  --th-blue-2:#2b7fe0;
  --th-blue-3:#eaf4ff;
  --th-cyan:#1aa4c7;
  --th-orange:#ef8b1f;
  --th-orange-2:#f4aa52;
  --th-ink:#16395f;
  --th-ink-soft:#5e7692;
  --th-line:#c8d9ed;
  --th-line-soft:#dce8f5;
  --th-bg:#f4f9ff;
  --th-card:#ffffff;
}

/* Tổng quát: nền sáng đồng bộ, chữ không bị đen trên nền tối hoặc mờ trên nền sáng */
body[data-theme="light"],
body[data-theme="light"] #app,
body[data-theme="light"] #workspace,
body[data-theme="light"] #map-wrap,
body[data-theme="light"] #map-wrapper,
body[data-theme="light"] .page,
body[data-theme="light"] .page-body{
  background:var(--th-bg)!important;
  color:var(--th-ink)!important;
}
body[data-theme="light"] a,
body[data-theme="light"] .link,
body[data-theme="light"] .linklike,
body[data-theme="light"] button.link,
body[data-theme="light"] .text-link{
  color:var(--th-blue)!important;
}
body[data-theme="light"] a:hover,
body[data-theme="light"] .link:hover,
body[data-theme="light"] .linklike:hover,
body[data-theme="light"] button.link:hover,
body[data-theme="light"] .text-link:hover{
  color:var(--th-orange)!important;
}
body[data-theme="light"] small,
body[data-theme="light"] .muted,
body[data-theme="light"] .hint,
body[data-theme="light"] .desc,
body[data-theme="light"] .text-muted,
body[data-theme="light"] .subtext,
body[data-theme="light"] .secondary-text,
body[data-theme="light"] .nav-sub,
body[data-theme="light"] .logo-ver,
body[data-theme="light"] .layer-count,
body[data-theme="light"] .layer-meta,
body[data-theme="light"] .placeholder,
body[data-theme="light"] input::placeholder,
body[data-theme="light"] textarea::placeholder{
  color:var(--th-ink-soft)!important;
  opacity:1!important;
}
body[data-theme="light"] [class*="shadow"],
body[data-theme="light"] #left-panel,
body[data-theme="light"] #right-panel,
body[data-theme="light"] #map-legend,
body[data-theme="light"] .stat-card,
body[data-theme="light"] .card,
body[data-theme="light"] .panel,
body[data-theme="light"] .dock,
body[data-theme="light"] .modal,
body[data-theme="light"] .modal-card,
body[data-theme="light"] .modal-content,
body[data-theme="light"] .chip,
body[data-theme="light"] .badge,
body[data-theme="light"] .tag{
  text-shadow:none!important;
}

/* TOPBAR: xanh chủ đạo, cam nhấn, chữ trắng */
body[data-theme="light"] #topbar{
  background:linear-gradient(135deg,var(--th-blue),var(--th-blue-2))!important;
  border-bottom:1px solid rgba(11,76,154,.35)!important;
  box-shadow:0 8px 24px rgba(20,90,170,.20)!important;
}
body[data-theme="light"] #topbar::after{
  height:3px!important;
  background:linear-gradient(90deg,var(--th-orange) 0 320px,var(--th-orange-2) 320px 410px,rgba(255,255,255,.12) 410px 100%)!important;
}
body[data-theme="light"] #topbar .logo-text,
body[data-theme="light"] #topbar .logo-ver,
body[data-theme="light"] #topbar .logo-title,
body[data-theme="light"] #topbar .logo-sub{
  color:#fff!important;
}
body[data-theme="light"] #topbar .nav-btn,
body[data-theme="light"] #topbar .tb-right>button,
body[data-theme="light"] #topbar .tb-search,
body[data-theme="light"] #topbar .tb-bell,
body[data-theme="light"] #topbar .user-pill{
  background:#fff!important;
  color:var(--th-ink)!important;
  border:1px solid rgba(255,255,255,.55)!important;
}
body[data-theme="light"] #topbar .nav-btn.active{
  background:linear-gradient(135deg,var(--th-orange),var(--th-orange-2))!important;
  border-color:#d97a11!important;
  color:#fff!important;
}
body[data-theme="light"] #topbar .nav-btn:hover,
body[data-theme="light"] #topbar .tb-right>button:hover,
body[data-theme="light"] #topbar .tb-search:hover,
body[data-theme="light"] #topbar .tb-bell:hover,
body[data-theme="light"] #topbar .user-pill:hover{
  background:#fff7ef!important;
  color:#b96508!important;
  border-color:#f0c28a!important;
}
body[data-theme="light"] .nav-badge{background:var(--th-orange)!important;color:#fff!important}

/* Các khối màu xám/tro -> xanh rất nhạt */
body[data-theme="light"] .panel,
body[data-theme="light"] .dock,
body[data-theme="light"] .card,
body[data-theme="light"] .modal,
body[data-theme="light"] .modal-card,
body[data-theme="light"] .modal-content,
body[data-theme="light"] .admin-section,
body[data-theme="light"] .admin-card,
body[data-theme="light"] .admin-action-card,
body[data-theme="light"] .rp-section,
body[data-theme="light"] .ad-section,
body[data-theme="light"] .ad-head,
body[data-theme="light"] .ad-tabs,
body[data-theme="light"] .ad-summary-band>div,
body[data-theme="light"] .ad-kpis>div,
body[data-theme="light"] .ad-matrix>div,
body[data-theme="light"] .ad-alerts>div,
body[data-theme="light"] .ad-layer-list>div,
body[data-theme="light"] .ad-legal-grid>div,
body[data-theme="light"] .stats-toolbar,
body[data-theme="light"] .supply-toolbar,
body[data-theme="light"] .page-hdr{
  background:var(--th-card)!important;
  color:var(--th-ink)!important;
  border:1px solid var(--th-line)!important;
  box-shadow:0 8px 22px rgba(26,92,168,.10)!important;
}

/* header các panel */
body[data-theme="light"] .lpanel-top,
body[data-theme="light"] #right-panel .rpanel-top,
body[data-theme="light"] .panel-header,
body[data-theme="light"] .dock-hdr,
body[data-theme="light"] .modal-header,
body[data-theme="light"] .admin-section-title,
body[data-theme="light"] .section-head,
body[data-theme="light"] #map-legend .mlg-hdr{
  background:linear-gradient(135deg,var(--th-blue),var(--th-blue-2))!important;
  color:#fff!important;
  border-bottom:1px solid rgba(11,76,154,.20)!important;
  position:relative;
}
body[data-theme="light"] .lpanel-top::before,
body[data-theme="light"] #right-panel .rpanel-top::before,
body[data-theme="light"] .panel-header::before,
body[data-theme="light"] .dock-hdr::before,
body[data-theme="light"] .modal-header::before,
body[data-theme="light"] .admin-section-title::before,
body[data-theme="light"] .section-head::before,
body[data-theme="light"] #map-legend .mlg-hdr::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--th-orange),var(--th-orange-2));
}
body[data-theme="light"] .lpanel-top *,
body[data-theme="light"] #right-panel .rpanel-top *,
body[data-theme="light"] .panel-header *,
body[data-theme="light"] .dock-hdr *,
body[data-theme="light"] .modal-header *,
body[data-theme="light"] .admin-section-title *,
body[data-theme="light"] .section-head *,
body[data-theme="light"] #map-legend .mlg-hdr *{color:#fff!important}

/* Left panel */
body[data-theme="light"] #left-panel{background:#fff!important;border-color:var(--th-line)!important}
body[data-theme="light"] #left-panel .search-input{background:#fff!important;color:var(--th-ink)!important;border-color:var(--th-line)!important}
body[data-theme="light"] #left-panel .cat-header{background:#edf5ff!important;color:#18538a!important;border-left:4px solid var(--th-orange)!important}
body[data-theme="light"] #left-panel .layer-item{background:#fff!important;color:var(--th-ink)!important;border-color:var(--th-line-soft)!important}
body[data-theme="light"] #left-panel .layer-item:hover{background:#f1f8ff!important}
body[data-theme="light"] #left-panel .layer-name{color:var(--th-ink)!important}

/* Right panel tabs / search / reports */
body[data-theme="light"] #right-panel,
body[data-theme="light"] .right-panel{background:#fff!important;border-color:var(--th-line)!important}
body[data-theme="light"] #right-panel .rpanel-body{background:#f7fbff!important}
body[data-theme="light"] #right-panel .ad-tabs{background:#edf5ff!important;border-color:var(--th-line)!important}
body[data-theme="light"] #right-panel .ad-tab,
body[data-theme="light"] .analysis-tab,
body[data-theme="light"] .panel-tab,
body[data-theme="light"] .tab{color:#355675!important;background:transparent!important;opacity:1!important}
body[data-theme="light"] #right-panel .ad-tab:hover,
body[data-theme="light"] .analysis-tab:hover,
body[data-theme="light"] .panel-tab:hover,
body[data-theme="light"] .tab:hover{background:#dcebff!important;color:#0f5da9!important}
body[data-theme="light"] #right-panel .ad-tab.active,
body[data-theme="light"] .analysis-tab.active,
body[data-theme="light"] .panel-tab.active,
body[data-theme="light"] .tab.active{background:linear-gradient(135deg,var(--th-blue),var(--th-blue-2))!important;color:#fff!important}
body[data-theme="light"] #right-panel input,
body[data-theme="light"] #right-panel select,
body[data-theme="light"] #right-panel textarea,
body[data-theme="light"] input,
body[data-theme="light"] select,
body[data-theme="light"] textarea{background:#fff!important;color:var(--th-ink)!important;border:1px solid var(--th-line)!important}
body[data-theme="light"] input:focus,
body[data-theme="light"] select:focus,
body[data-theme="light"] textarea:focus{border-color:var(--th-blue)!important;box-shadow:0 0 0 3px rgba(21,101,192,.10)!important}

/* Legend */
body[data-theme="light"] #map-legend{background:#fff!important;border-color:var(--th-line)!important;box-shadow:0 12px 28px rgba(20,86,160,.15)!important}
body[data-theme="light"] #map-legend-body,
body[data-theme="light"] #map-legend .mlg-body,
body[data-theme="light"] #map-legend .mlg-items{background:#fff!important;color:var(--th-ink)!important}
body[data-theme="light"] #map-legend .legend-item,
body[data-theme="light"] #map-legend .mlg-item,
body[data-theme="light"] #map-legend .mlg-row,
body[data-theme="light"] #map-legend .color-legend-item{color:var(--th-ink)!important}
body[data-theme="light"] #legend-pill,
body[data-theme="light"] #btn-tg-legend,
body[data-theme="light"] #btn-tg-filter{background:linear-gradient(135deg,var(--th-blue),var(--th-blue-2))!important;color:#fff!important;border-color:#125a9f!important}
body[data-theme="light"] #legend-pill:hover,
body[data-theme="light"] #btn-tg-legend:hover,
body[data-theme="light"] #btn-tg-filter:hover{background:linear-gradient(135deg,var(--th-orange),var(--th-orange-2))!important;border-color:#d97a11!important}

/* KPI / toolbar nổi trên bản đồ */
body[data-theme="light"] .stat-card,
body[data-theme="light"] .map-float-card,
body[data-theme="light"] .kpi-card,
body[data-theme="light"] .toolbar-chip,
body[data-theme="light"] .stats-toolbar>div{
  background:linear-gradient(180deg,#ffffff,#f7fbff)!important;
  border:1px solid var(--th-line)!important;
  color:var(--th-ink)!important;
}
body[data-theme="light"] .stat-card b,
body[data-theme="light"] .stat-card .stat-value,
body[data-theme="light"] .kpi-card b,
body[data-theme="light"] .stats-toolbar>div b{color:var(--th-blue)!important}
body[data-theme="light"] .stat-card small,
body[data-theme="light"] .kpi-card small,
body[data-theme="light"] .stats-toolbar>div small{color:var(--th-ink-soft)!important;opacity:1!important}

/* Buttons / badges */
body[data-theme="light"] .btn-primary{background:linear-gradient(135deg,var(--th-blue),var(--th-blue-2))!important;color:#fff!important;border-color:#125a9f!important}
body[data-theme="light"] .btn-primary:hover{background:linear-gradient(135deg,var(--th-orange),var(--th-orange-2))!important;border-color:#d97a11!important}
body[data-theme="light"] .btn-secondary,
body[data-theme="light"] .btn-ghost{background:#fff!important;color:var(--th-ink)!important;border-color:var(--th-line)!important}
body[data-theme="light"] .btn-secondary:hover,
body[data-theme="light"] .btn-ghost:hover{background:#edf5ff!important;color:var(--th-blue)!important}
body[data-theme="light"] .btn-warn,
body[data-theme="light"] .badge-warning,
body[data-theme="light"] .chip-warning{background:#fff1e3!important;color:#b96508!important;border-color:#f0c28a!important}
body[data-theme="light"] .chip,
body[data-theme="light"] .badge,
body[data-theme="light"] .tag{background:#edf5ff!important;color:var(--th-blue)!important;border-color:var(--th-line)!important}

/* thanh trạng thái dưới cùng */
body[data-theme="light"] #map-statusbar{
  background:linear-gradient(135deg,var(--th-blue),var(--th-blue-2))!important;
  border-top:1px solid rgba(11,76,154,.20)!important;
  color:#fff!important;
}
body[data-theme="light"] #map-statusbar,
body[data-theme="light"] #map-statusbar *{color:#fff!important}
body[data-theme="light"] #map-statusbar .msb-cell{border-color:rgba(255,255,255,.16)!important}

/* sweep cuối: tất cả vùng xám/đen còn sót trong theme sáng chuyển về sáng */
body[data-theme="light"] [style*="background:#111"],
body[data-theme="light"] [style*="background:#222"],
body[data-theme="light"] [style*="background:#333"],
body[data-theme="light"] [style*="background:#444"],
body[data-theme="light"] [style*="background:#555"],
body[data-theme="light"] [style*="background:#666"],
body[data-theme="light"] [style*="background:#777"],
body[data-theme="light"] [style*="background:#888"],
body[data-theme="light"] [style*="background-color:#111"],
body[data-theme="light"] [style*="background-color:#222"],
body[data-theme="light"] [style*="background-color:#333"],
body[data-theme="light"] [style*="background-color:#444"],
body[data-theme="light"] [style*="background-color:#555"],
body[data-theme="light"] [style*="background-color:#666"],
body[data-theme="light"] [style*="background-color:#777"],
body[data-theme="light"] [style*="background-color:#888"]{
  background:#fff!important;
  color:var(--th-ink)!important;
  border-color:var(--th-line)!important;
}

/* ═══ DCKS 1.1.16 — rà soát sweep cuối cho theme sáng, bỏ nền đen khi hover ═══ */
body[data-theme="light"]{
  --ui-blue:#1565c0;
  --ui-blue2:#2d7be0;
  --ui-blue-soft:#edf5ff;
  --ui-blue-soft2:#dcecff;
  --ui-orange:#ef8b1f;
  --ui-orange2:#f4a74a;
  --ui-ink:#173a63;
  --ui-ink2:#617993;
  --ui-line:#c6d8ec;
  --ui-line2:#dce7f4;
  --ui-white:#ffffff;
}

/* ô KPI và summary trong panel phải sáng, chữ đậm */
body[data-theme="light"] .ad-summary-band>div,
body[data-theme="light"] .ad-kpis>div,
body[data-theme="light"] .ad-matrix>div,
body[data-theme="light"] .stats-card,
body[data-theme="light"] .summary-card,
body[data-theme="light"] .mini-stat,
body[data-theme="light"] .metric-box,
body[data-theme="light"] .info-box,
body[data-theme="light"] .data-sum,
body[data-theme="light"] .scope-box,
body[data-theme="light"] .kpi-box,
body[data-theme="light"] .stat-mini,
body[data-theme="light"] .quick-stat{
  background:linear-gradient(180deg,#f9fcff,#eef5ff)!important;
  color:var(--ui-ink)!important;
  border:1px solid var(--ui-line)!important;
  box-shadow:0 6px 16px rgba(20,84,160,.08)!important;
}
body[data-theme="light"] .ad-summary-band>div *,
body[data-theme="light"] .ad-kpis>div *,
body[data-theme="light"] .ad-matrix>div *,
body[data-theme="light"] .stats-card *,
body[data-theme="light"] .summary-card *,
body[data-theme="light"] .mini-stat *,
body[data-theme="light"] .metric-box *,
body[data-theme="light"] .info-box *,
body[data-theme="light"] .data-sum *,
body[data-theme="light"] .scope-box *,
body[data-theme="light"] .kpi-box *,
body[data-theme="light"] .stat-mini *,
body[data-theme="light"] .quick-stat *{
  color:inherit!important;
}
body[data-theme="light"] .ad-summary-band>div b,
body[data-theme="light"] .ad-kpis>div b,
body[data-theme="light"] .ad-matrix>div b,
body[data-theme="light"] .stats-card b,
body[data-theme="light"] .summary-card b,
body[data-theme="light"] .mini-stat b,
body[data-theme="light"] .metric-box b,
body[data-theme="light"] .info-box b,
body[data-theme="light"] .data-sum b,
body[data-theme="light"] .scope-box b,
body[data-theme="light"] .kpi-box b,
body[data-theme="light"] .stat-mini b,
body[data-theme="light"] .quick-stat b,
body[data-theme="light"] .stat-value,
body[data-theme="light"] .metric-value{
  color:var(--ui-blue)!important;
}
body[data-theme="light"] .ad-summary-band>div small,
body[data-theme="light"] .ad-kpis>div small,
body[data-theme="light"] .ad-matrix>div small,
body[data-theme="light"] .stats-card small,
body[data-theme="light"] .summary-card small,
body[data-theme="light"] .mini-stat small,
body[data-theme="light"] .metric-box small,
body[data-theme="light"] .info-box small,
body[data-theme="light"] .data-sum small,
body[data-theme="light"] .scope-box small,
body[data-theme="light"] .kpi-box small,
body[data-theme="light"] .stat-mini small,
body[data-theme="light"] .quick-stat small,
body[data-theme="light"] .metric-label,
body[data-theme="light"] .stat-label{
  color:var(--ui-ink2)!important;opacity:1!important;
}

/* floating KPI trên bản đồ */
body[data-theme="light"] .stat-card,
body[data-theme="light"] .map-float-card,
body[data-theme="light"] .kpi-card,
body[data-theme="light"] .toolbar-chip,
body[data-theme="light"] .stats-toolbar>div,
body[data-theme="light"] .map-kpi,
body[data-theme="light"] .summary-chip{
  background:linear-gradient(180deg,#f7fbff,#eaf4ff)!important;
  color:var(--ui-ink)!important;
  border:1px solid var(--ui-line)!important;
  box-shadow:0 7px 18px rgba(23,84,160,.10)!important;
}
body[data-theme="light"] .stat-card:hover,
body[data-theme="light"] .map-float-card:hover,
body[data-theme="light"] .kpi-card:hover,
body[data-theme="light"] .toolbar-chip:hover,
body[data-theme="light"] .stats-toolbar>div:hover,
body[data-theme="light"] .map-kpi:hover,
body[data-theme="light"] .summary-chip:hover{
  background:linear-gradient(180deg,#fff8ef,#fff2e2)!important;
  border-color:#efc28e!important;
}

/* Legend pills và filter pills */
body[data-theme="light"] #map-legend .mlg-hdr .chip,
body[data-theme="light"] #map-legend .mlg-hdr .badge,
body[data-theme="light"] #map-legend .mlg-hdr .tag,
body[data-theme="light"] #map-legend .mlg-hdr button,
body[data-theme="light"] #map-legend .mlg-hdr .btn,
body[data-theme="light"] #map-legend .legend-filter,
body[data-theme="light"] #map-legend .legend-toggle{
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.28)!important;
}
body[data-theme="light"] #map-legend .mlg-hdr .chip:hover,
body[data-theme="light"] #map-legend .mlg-hdr .badge:hover,
body[data-theme="light"] #map-legend .mlg-hdr .tag:hover,
body[data-theme="light"] #map-legend .mlg-hdr button:hover,
body[data-theme="light"] #map-legend .mlg-hdr .btn:hover,
body[data-theme="light"] #map-legend .legend-filter:hover,
body[data-theme="light"] #map-legend .legend-toggle:hover{
  background:rgba(255,255,255,.28)!important;
  border-color:rgba(255,255,255,.40)!important;
}

/* toolbar dọc bên trái */
body[data-theme="light"] .map-tools,
body[data-theme="light"] .map-vertical-toolbar,
body[data-theme="light"] .left-float-tools,
body[data-theme="light"] .leaflet-left .tool-stack{
  background:transparent!important;
}
body[data-theme="light"] .map-tools .tool-btn,
body[data-theme="light"] .map-vertical-toolbar .tool-btn,
body[data-theme="light"] .left-float-tools .tool-btn,
body[data-theme="light"] .leaflet-left .tool-stack button,
body[data-theme="light"] .leaflet-left .tool-stack .btn,
body[data-theme="light"] .map-toolbar-vertical button,
body[data-theme="light"] .map-toolbar-vertical .btn{
  background:linear-gradient(180deg,#f7fbff,#eaf4ff)!important;
  color:var(--ui-blue)!important;
  border:1px solid var(--ui-line)!important;
  box-shadow:0 6px 14px rgba(23,84,160,.10)!important;
}
body[data-theme="light"] .map-tools .tool-btn:hover,
body[data-theme="light"] .map-vertical-toolbar .tool-btn:hover,
body[data-theme="light"] .left-float-tools .tool-btn:hover,
body[data-theme="light"] .leaflet-left .tool-stack button:hover,
body[data-theme="light"] .leaflet-left .tool-stack .btn:hover,
body[data-theme="light"] .map-toolbar-vertical button:hover,
body[data-theme="light"] .map-toolbar-vertical .btn:hover{
  background:linear-gradient(180deg,#fff8ef,#fff2e2)!important;
  color:#b96508!important;
  border-color:#efc28e!important;
}
body[data-theme="light"] .map-tools .tool-btn.active,
body[data-theme="light"] .map-vertical-toolbar .tool-btn.active,
body[data-theme="light"] .left-float-tools .tool-btn.active,
body[data-theme="light"] .leaflet-left .tool-stack .active,
body[data-theme="light"] .map-toolbar-vertical .active{
  background:linear-gradient(135deg,var(--ui-blue),var(--ui-blue2))!important;
  color:#fff!important;
  border-color:#125a9f!important;
}

/* thanh trạng thái dưới cùng */
body[data-theme="light"] #map-statusbar,
body[data-theme="light"] .statusbar,
body[data-theme="light"] .bottom-toolbar{
  background:linear-gradient(135deg,var(--ui-blue),var(--ui-blue2))!important;
  color:#fff!important;
}
body[data-theme="light"] #map-statusbar .msb-cell,
body[data-theme="light"] .statusbar .msb-cell,
body[data-theme="light"] .bottom-toolbar .msb-cell,
body[data-theme="light"] #map-statusbar .chip,
body[data-theme="light"] .statusbar .chip,
body[data-theme="light"] .bottom-toolbar .chip,
body[data-theme="light"] #map-statusbar .btn,
body[data-theme="light"] .statusbar .btn,
body[data-theme="light"] .bottom-toolbar .btn,
body[data-theme="light"] #map-statusbar select,
body[data-theme="light"] .statusbar select,
body[data-theme="light"] .bottom-toolbar select{
  background:rgba(255,255,255,.18)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:none!important;
}
body[data-theme="light"] #map-statusbar .msb-cell:hover,
body[data-theme="light"] .statusbar .msb-cell:hover,
body[data-theme="light"] .bottom-toolbar .msb-cell:hover,
body[data-theme="light"] #map-statusbar .chip:hover,
body[data-theme="light"] .statusbar .chip:hover,
body[data-theme="light"] .bottom-toolbar .chip:hover,
body[data-theme="light"] #map-statusbar .btn:hover,
body[data-theme="light"] .statusbar .btn:hover,
body[data-theme="light"] .bottom-toolbar .btn:hover,
body[data-theme="light"] #map-statusbar select:hover,
body[data-theme="light"] .statusbar select:hover,
body[data-theme="light"] .bottom-toolbar select:hover{
  background:rgba(255,255,255,.28)!important;
  border-color:rgba(255,255,255,.38)!important;
}
body[data-theme="light"] #map-statusbar *,
body[data-theme="light"] .statusbar *,
body[data-theme="light"] .bottom-toolbar *{
  color:#fff!important;
}

/* banners / notifications admin */
body[data-theme="light"] .notice,
body[data-theme="light"] .notice-bar,
body[data-theme="light"] .status-banner,
body[data-theme="light"] .save-banner,
body[data-theme="light"] .toast-inline,
body[data-theme="light"] .admin-savebar,
body[data-theme="light"] .flashbar,
body[data-theme="light"] .message-bar{
  background:linear-gradient(135deg,#eff6ff,#e0efff)!important;
  color:var(--ui-ink)!important;
  border:1px solid var(--ui-line)!important;
  box-shadow:0 6px 16px rgba(23,84,160,.08)!important;
}
body[data-theme="light"] .notice .btn,
body[data-theme="light"] .notice-bar .btn,
body[data-theme="light"] .status-banner .btn,
body[data-theme="light"] .save-banner .btn,
body[data-theme="light"] .toast-inline .btn,
body[data-theme="light"] .admin-savebar .btn,
body[data-theme="light"] .flashbar .btn,
body[data-theme="light"] .message-bar .btn{
  background:linear-gradient(135deg,var(--ui-blue),var(--ui-blue2))!important;
  color:#fff!important;
  border-color:#125a9f!important;
}
body[data-theme="light"] .notice .btn:hover,
body[data-theme="light"] .notice-bar .btn:hover,
body[data-theme="light"] .status-banner .btn:hover,
body[data-theme="light"] .save-banner .btn:hover,
body[data-theme="light"] .toast-inline .btn:hover,
body[data-theme="light"] .admin-savebar .btn:hover,
body[data-theme="light"] .flashbar .btn:hover,
body[data-theme="light"] .message-bar .btn:hover{
  background:linear-gradient(135deg,var(--ui-orange),var(--ui-orange2))!important;
  border-color:#d97a11!important;
}

/* Hover sweep: không cho nền đen khi di chuột */
body[data-theme="light"] .layer-item:hover,
body[data-theme="light"] .legend-item:hover,
body[data-theme="light"] .mlg-item:hover,
body[data-theme="light"] .mlg-row:hover,
body[data-theme="light"] .admin-action-card:hover,
body[data-theme="light"] .card:hover,
body[data-theme="light"] .panel:hover,
body[data-theme="light"] .dock:hover,
body[data-theme="light"] .btn:hover,
body[data-theme="light"] button:hover,
body[data-theme="light"] .chip:hover,
body[data-theme="light"] .badge:hover,
body[data-theme="light"] .tag:hover,
body[data-theme="light"] tr:hover td,
body[data-theme="light"] li:hover,
body[data-theme="light"] .hoverable:hover,
body[data-theme="light"] .clickable:hover,
body[data-theme="light"] .feature-row:hover,
body[data-theme="light"] .attr-row:hover,
body[data-theme="light"] .result-item:hover,
body[data-theme="light"] .file-row:hover,
body[data-theme="light"] .doc-item:hover,
body[data-theme="light"] .photo-item:hover,
body[data-theme="light"] .attachment-item:hover,
body[data-theme="light"] .record-item:hover{
  background:#eef6ff!important;
  color:var(--ui-ink)!important;
}
body[data-theme="light"] .selected,
body[data-theme="light"] .is-selected,
body[data-theme="light"] .current,
body[data-theme="light"] .active-row,
body[data-theme="light"] .layer-item.active,
body[data-theme="light"] .legend-item.active,
body[data-theme="light"] .feature-row.active,
body[data-theme="light"] .result-item.active{
  background:#dcecff!important;
  color:#0f5da9!important;
}

/* các nơi bị inline đen/xám */
body[data-theme="light"] [style*="background:#000"],
body[data-theme="light"] [style*="background: #000"],
body[data-theme="light"] [style*="background:#111"],
body[data-theme="light"] [style*="background:#222"],
body[data-theme="light"] [style*="background:#333"],
body[data-theme="light"] [style*="background:#444"],
body[data-theme="light"] [style*="background:#555"],
body[data-theme="light"] [style*="background:#666"],
body[data-theme="light"] [style*="background:#777"],
body[data-theme="light"] [style*="background:#888"],
body[data-theme="light"] [style*="background-color:#000"],
body[data-theme="light"] [style*="background-color:#111"],
body[data-theme="light"] [style*="background-color:#222"],
body[data-theme="light"] [style*="background-color:#333"],
body[data-theme="light"] [style*="background-color:#444"],
body[data-theme="light"] [style*="background-color:#555"],
body[data-theme="light"] [style*="background-color:#666"],
body[data-theme="light"] [style*="background-color:#777"],
body[data-theme="light"] [style*="background-color:#888"]{
  background:#fff!important;
  color:var(--ui-ink)!important;
  border-color:var(--ui-line)!important;
}

/* ═══ DCKS 1.1.17 — fix đúng các chỗ trong ảnh user khoanh ═══ */
body[data-theme="light"]{
  --fix-blue:#1565c0;
  --fix-blue2:#2b7fe0;
  --fix-blue-soft:#eef6ff;
  --fix-orange:#ef8b1f;
  --fix-orange2:#f5aa4f;
  --fix-ink:#173a63;
  --fix-ink2:#657e99;
  --fix-line:#c7d9ed;
}

/* 1) Các ô KPI nổi trên bản đồ: đúng màu sáng xanh, không xám đen */
body[data-theme="light"] #stat-cards .stat-card,
body[data-theme="light"] .map-stat-card,
body[data-theme="light"] .map-kpi-card{
  background:linear-gradient(180deg,#f8fbff,#edf5ff)!important;
  border:1px solid var(--fix-line)!important;
  color:var(--fix-ink)!important;
  box-shadow:0 8px 18px rgba(21,101,192,.10)!important;
}
body[data-theme="light"] #stat-cards .stat-card .stat-ic,
body[data-theme="light"] .map-stat-card .stat-ic{background:rgba(21,101,192,.08)!important;color:var(--fix-blue)!important}
body[data-theme="light"] #stat-cards .stat-card .stat-lbl,
body[data-theme="light"] .map-stat-card .stat-lbl{color:var(--fix-ink2)!important;opacity:1!important}
body[data-theme="light"] #stat-cards .stat-card .stat-val,
body[data-theme="light"] .map-stat-card .stat-val{color:var(--fix-ink)!important}
body[data-theme="light"] #stat-cards .stat-card .stat-val b,
body[data-theme="light"] .map-stat-card .stat-val b{color:var(--fix-blue)!important}
body[data-theme="light"] #stat-cards .stat-card:hover{background:linear-gradient(180deg,#fff8ef,#fff0dd)!important;border-color:#efc38e!important}

/* toggle nhỏ cạnh stat cards */
body[data-theme="light"] #stat-cards-toggle{
  background:linear-gradient(180deg,#f8fbff,#eaf4ff)!important;
  color:var(--fix-blue)!important;
  border:1px solid var(--fix-line)!important;
  box-shadow:0 6px 14px rgba(21,101,192,.10)!important;
}
body[data-theme="light"] #stat-cards-toggle:hover{background:linear-gradient(180deg,#fff8ef,#fff0dd)!important;color:#b96508!important;border-color:#efc38e!important}

/* 2) Thanh trạng thái dưới cùng: bỏ ô xám rời rạc */
body[data-theme="light"] #map-statusbar{
  background:linear-gradient(135deg,var(--fix-blue),var(--fix-blue2))!important;
  border-top:1px solid rgba(13,80,160,.24)!important;
  box-shadow:0 -6px 16px rgba(21,101,192,.14)!important;
}
body[data-theme="light"] #map-statusbar .msb-cell,
body[data-theme="light"] #map-statusbar .msb-btn,
body[data-theme="light"] #map-statusbar select,
body[data-theme="light"] #map-statusbar .chip,
body[data-theme="light"] #map-statusbar button{
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-radius:9px!important;
}
body[data-theme="light"] #map-statusbar .msb-cell:hover,
body[data-theme="light"] #map-statusbar .msb-btn:hover,
body[data-theme="light"] #map-statusbar select:hover,
body[data-theme="light"] #map-statusbar .chip:hover,
body[data-theme="light"] #map-statusbar button:hover{
  background:rgba(255,255,255,.26)!important;
  border-color:rgba(255,255,255,.36)!important;
}
body[data-theme="light"] #map-statusbar,
body[data-theme="light"] #map-statusbar *{color:#fff!important;text-shadow:none!important}

/* 3) Pill ở header chú giải */
body[data-theme="light"] #map-legend .mlg-hdr > span:last-child select,
body[data-theme="light"] #map-legend .mlg-hdr > span:last-child .btn,
body[data-theme="light"] #map-legend .mlg-hdr > span:last-child button,
body[data-theme="light"] #map-legend .mlg-hdr > span:last-child .chip{
  background:rgba(255,255,255,.15)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.24)!important;
  border-radius:10px!important;
}
body[data-theme="light"] #map-legend .mlg-hdr > span:last-child select option{
  color:var(--fix-ink)!important;background:#fff!important;
}

/* 4) Thanh công cụ dọc bên trái: sáng, đồng bộ */
body[data-theme="light"] #maptool-wrap,
body[data-theme="light"] #maptool-box,
body[data-theme="light"] .maptool-wrap,
body[data-theme="light"] .map-toolbar-vertical{
  background:transparent!important;
}
body[data-theme="light"] #maptool-wrap .btn,
body[data-theme="light"] #maptool-box .btn,
body[data-theme="light"] .maptool-wrap .btn,
body[data-theme="light"] .map-toolbar-vertical .btn,
body[data-theme="light"] #maptool-wrap button,
body[data-theme="light"] #maptool-box button,
body[data-theme="light"] .maptool-wrap button,
body[data-theme="light"] .map-toolbar-vertical button{
  background:linear-gradient(180deg,#f8fbff,#eaf4ff)!important;
  color:var(--fix-blue)!important;
  border:1px solid var(--fix-line)!important;
  box-shadow:0 6px 14px rgba(21,101,192,.10)!important;
}
body[data-theme="light"] #maptool-wrap .btn:hover,
body[data-theme="light"] #maptool-box .btn:hover,
body[data-theme="light"] .maptool-wrap .btn:hover,
body[data-theme="light"] .map-toolbar-vertical .btn:hover,
body[data-theme="light"] #maptool-wrap button:hover,
body[data-theme="light"] #maptool-box button:hover,
body[data-theme="light"] .maptool-wrap button:hover,
body[data-theme="light"] .map-toolbar-vertical button:hover{
  background:linear-gradient(180deg,#fff8ef,#fff0dd)!important;
  color:#b96508!important;
  border-color:#efc38e!important;
}
body[data-theme="light"] #maptool-wrap .active,
body[data-theme="light"] #maptool-box .active,
body[data-theme="light"] .maptool-wrap .active,
body[data-theme="light"] .map-toolbar-vertical .active{
  background:linear-gradient(135deg,var(--fix-blue),var(--fix-blue2))!important;
  color:#fff!important;
  border-color:#125a9f!important;
}

/* 5) banner lưu quyền: bỏ nền đen */
body[data-theme="light"] .dcks-perm-savebar{
  background:linear-gradient(180deg,#f7fbff,#eef6ff)!important;
  border:1px solid var(--fix-line)!important;
  box-shadow:0 8px 18px rgba(21,101,192,.08)!important;
}
body[data-theme="light"] .dcks-perm-savebar small{color:var(--fix-ink2)!important}
body[data-theme="light"] .dcks-save-state{border:1px solid transparent!important}
body[data-theme="light"] .dcks-save-state.dirty{color:#b96508!important;background:#fff1df!important;border-color:#f0c28a!important}
body[data-theme="light"] .dcks-save-state.saved{color:#0b7f5f!important;background:#e8fbf4!important;border-color:#9ddac8!important}
body[data-theme="light"] .dcks-perm-savebar .btn{background:linear-gradient(135deg,var(--fix-blue),var(--fix-blue2))!important;color:#fff!important;border-color:#125a9f!important}
body[data-theme="light"] .dcks-perm-savebar .btn:hover{background:linear-gradient(135deg,var(--fix-orange),var(--fix-orange2))!important;border-color:#d97a11!important}

/* 6) hover sweep đúng các đối tượng người dùng gửi */
body[data-theme="light"] .layer-item:hover,
body[data-theme="light"] .legend-item:hover,
body[data-theme="light"] .mlg-item:hover,
body[data-theme="light"] .mlg-row:hover,
body[data-theme="light"] .file-row:hover,
body[data-theme="light"] .doc-item:hover,
body[data-theme="light"] .attachment-item:hover,
body[data-theme="light"] .record-item:hover,
body[data-theme="light"] .result-item:hover,
body[data-theme="light"] .feature-row:hover,
body[data-theme="light"] tr:hover td,
body[data-theme="light"] li:hover,
body[data-theme="light"] .hoverable:hover,
body[data-theme="light"] .clickable:hover{
  background:#eef6ff!important;
  color:var(--fix-ink)!important;
}
body[data-theme="light"] .layer-item:hover *,
body[data-theme="light"] .legend-item:hover *,
body[data-theme="light"] .mlg-item:hover *,
body[data-theme="light"] .mlg-row:hover *,
body[data-theme="light"] .file-row:hover *,
body[data-theme="light"] .doc-item:hover *,
body[data-theme="light"] .attachment-item:hover *,
body[data-theme="light"] .record-item:hover *,
body[data-theme="light"] .result-item:hover *,
body[data-theme="light"] .feature-row:hover *,
body[data-theme="light"] tr:hover td *,
body[data-theme="light"] li:hover *{color:inherit!important}

/* ═══ DCKS 1.1.18 — tinh chỉnh thẩm mỹ: xanh mờ đồng bộ + header bớt thô ═══ */
body[data-theme="light"]{
  --softb-1: rgba(233,243,255,.78);
  --softb-2: rgba(216,231,248,.72);
  --softb-3: rgba(255,255,255,.18);
  --softb-4: rgba(255,255,255,.10);
  --soft-line: rgba(255,255,255,.18);
  --soft-ink: #20486f;
  --soft-ink2: #64809e;
  --soft-blue: #1c6ccc;
  --soft-blue2:#347fdf;
  --soft-orange:#ee8f24;
}

/* Header: giữ nền xanh nhưng cụm nút/pill mềm hơn, không nổi thô */
body[data-theme="light"] #topbar{
  background: linear-gradient(135deg, #1969ca 0%, #2f7ddc 55%, #2c78d4 100%) !important;
  box-shadow: 0 6px 18px rgba(18,86,165,.16) !important;
}
body[data-theme="light"] #topbar .nav{
  display:flex!important;align-items:center!important;gap:6px!important;
  padding:4px 8px!important;border-radius:14px!important;
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08)!important;
}
body[data-theme="light"] #topbar .tb-right{
  gap:8px!important;
  padding:4px 8px 4px 14px!important;
  border-left:1px solid rgba(255,255,255,.18)!important;
}
body[data-theme="light"] #topbar .nav-btn,
body[data-theme="light"] #topbar .tb-right>button,
body[data-theme="light"] #topbar .tb-search,
body[data-theme="light"] #topbar .tb-bell,
body[data-theme="light"] #topbar .user-pill{
  background:rgba(255,255,255,.92)!important;
  border:1px solid rgba(255,255,255,.42)!important;
  color:var(--soft-ink)!important;
  box-shadow:0 2px 8px rgba(11,54,108,.08)!important;
}
body[data-theme="light"] #topbar .nav-btn,
body[data-theme="light"] #topbar .tb-right>button{border-radius:12px!important}
body[data-theme="light"] #topbar .nav-btn:hover,
body[data-theme="light"] #topbar .tb-right>button:hover,
body[data-theme="light"] #topbar .tb-search:hover,
body[data-theme="light"] #topbar .tb-bell:hover,
body[data-theme="light"] #topbar .user-pill:hover{
  background:#fff7ef!important;border-color:#efc48d!important;color:#b96709!important;transform:translateY(-1px)
}
body[data-theme="light"] #topbar .nav-btn.active{
  background:linear-gradient(135deg,var(--soft-orange),#f6ab51)!important;
  color:#fff!important;border-color:#d9780e!important;box-shadow:0 4px 12px rgba(238,143,36,.22)!important
}
body[data-theme="light"] #topbar .nav-badge{background:var(--soft-orange)!important;color:#fff!important}
body[data-theme="light"] #topbar .user-pill{border-radius:18px!important}

/* Khu KPI trên bản đồ: xanh mờ */
body[data-theme="light"] #stat-cards .stat-card,
body[data-theme="light"] .map-stat-card,
body[data-theme="light"] .map-kpi-card,
body[data-theme="light"] .toolbar-chip{
  background:linear-gradient(180deg,var(--softb-1),var(--softb-2))!important;
  backdrop-filter: blur(10px)!important;
  -webkit-backdrop-filter: blur(10px)!important;
  border:1px solid rgba(171,196,225,.85)!important;
  color:var(--soft-ink)!important;
  box-shadow:0 6px 16px rgba(22,82,153,.10)!important;
}
body[data-theme="light"] #stat-cards .stat-card .stat-lbl,
body[data-theme="light"] .map-stat-card .stat-lbl{color:var(--soft-ink2)!important}
body[data-theme="light"] #stat-cards .stat-card .stat-val b,
body[data-theme="light"] .map-stat-card .stat-val b{color:var(--soft-blue)!important}
body[data-theme="light"] #stat-cards .stat-card:hover{background:linear-gradient(180deg,#f8fbff,#edf6ff)!important;border-color:#8eb4df!important}

/* Toolbar dọc trái: cùng tông xanh mờ */
body[data-theme="light"] #maptool-wrap .btn,
body[data-theme="light"] #maptool-box .btn,
body[data-theme="light"] .maptool-wrap .btn,
body[data-theme="light"] .map-toolbar-vertical .btn,
body[data-theme="light"] #maptool-wrap button,
body[data-theme="light"] #maptool-box button,
body[data-theme="light"] .maptool-wrap button,
body[data-theme="light"] .map-toolbar-vertical button{
  background:linear-gradient(180deg,var(--softb-1),var(--softb-2))!important;
  color:var(--soft-blue)!important;
  border:1px solid rgba(171,196,225,.85)!important;
  box-shadow:0 5px 14px rgba(22,82,153,.10)!important;
}
body[data-theme="light"] #maptool-wrap .btn:hover,
body[data-theme="light"] #maptool-box .btn:hover,
body[data-theme="light"] .maptool-wrap .btn:hover,
body[data-theme="light"] .map-toolbar-vertical .btn:hover,
body[data-theme="light"] #maptool-wrap button:hover,
body[data-theme="light"] #maptool-box button:hover,
body[data-theme="light"] .maptool-wrap button:hover,
body[data-theme="light"] .map-toolbar-vertical button:hover{background:linear-gradient(180deg,#fff7ef,#ffefdd)!important;color:#ba6a0c!important;border-color:#efc38e!important}
body[data-theme="light"] #maptool-wrap .active,
body[data-theme="light"] #maptool-box .active,
body[data-theme="light"] .maptool-wrap .active,
body[data-theme="light"] .map-toolbar-vertical .active{background:linear-gradient(135deg,var(--soft-blue),var(--soft-blue2))!important;color:#fff!important;border-color:#125ca7!important}

/* Thanh trạng thái dưới: nền xanh mờ chứ không khối đậm */
body[data-theme="light"] #map-statusbar{
  background:linear-gradient(180deg,rgba(233,243,255,.90),rgba(214,229,246,.88))!important;
  backdrop-filter: blur(10px)!important;
  -webkit-backdrop-filter: blur(10px)!important;
  border-top:1px solid rgba(159,187,219,.95)!important;
  box-shadow:0 -5px 16px rgba(19,78,146,.10)!important;
}
body[data-theme="light"] #map-statusbar,
body[data-theme="light"] #map-statusbar *{color:var(--soft-ink)!important}
body[data-theme="light"] #map-statusbar .msb-cell,
body[data-theme="light"] #map-statusbar .msb-btn,
body[data-theme="light"] #map-statusbar select,
body[data-theme="light"] #map-statusbar .chip,
body[data-theme="light"] #map-statusbar button{
  background:rgba(255,255,255,.52)!important;
  color:var(--soft-ink)!important;
  border:1px solid rgba(167,191,219,.9)!important;
  box-shadow:none!important;
}
body[data-theme="light"] #map-statusbar .msb-cell:hover,
body[data-theme="light"] #map-statusbar .msb-btn:hover,
body[data-theme="light"] #map-statusbar select:hover,
body[data-theme="light"] #map-statusbar .chip:hover,
body[data-theme="light"] #map-statusbar button:hover{background:#fff7ef!important;color:#b96709!important;border-color:#efc48d!important}

/* Nút chú giải nổi cũng mềm lại */
body[data-theme="light"] #legend-pill,
body[data-theme="light"] #btn-tg-legend,
body[data-theme="light"] #btn-tg-filter{
  background:linear-gradient(180deg,var(--softb-1),var(--softb-2))!important;
  color:var(--soft-blue)!important;
  border:1px solid rgba(171,196,225,.85)!important;
  box-shadow:0 6px 14px rgba(22,82,153,.10)!important;
}
body[data-theme="light"] #legend-pill:hover,
body[data-theme="light"] #btn-tg-legend:hover,
body[data-theme="light"] #btn-tg-filter:hover{background:linear-gradient(180deg,#fff7ef,#ffefdd)!important;color:#ba6a0c!important;border-color:#efc38e!important}
