body { font-family: 'Inter', sans-serif; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #0b0f19; }
::-webkit-scrollbar-thumb { background: #1e293b; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #4f46e5; }

@keyframes pulse-ring {
  0% { transform: scale(0.95); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.5; }
}
.pulse-dot { animation: pulse-ring 2s infinite; }

/* ---- Menu phân cấp (icon rail) ---- */
/* Submenu ẩn mặc định; chỉ hiện khi sidebar đang mở rộng (hover) VÀ nhóm đang mở */
.nav-sub { display: none; }
aside:hover .nav-group.open > .nav-sub { display: block; }
/* Mũi tên xoay khi mở nhóm */
.nav-chevron { transition: transform .2s ease; }
.nav-group.open > .nav-group-toggle .nav-chevron { transform: rotate(180deg); }

/* Bảng địa danh: căn giữa theo chiều dọc; ngang mặc định trái, cột nào cần thì thêm text-center */
.lm-table th, .lm-table td { vertical-align: middle; }

/* Kẻ viền ngang + dọc mảnh giữa các ô (grid đầy đủ) */
.lm-table th, .lm-table td {
  border-right: 1px solid rgba(30, 41, 59, 0.55);
  border-bottom: 1px solid rgba(30, 41, 59, 0.55);
}
.lm-table th:last-child, .lm-table td:last-child { border-right: none; }

/* ---- Form địa danh (nhiều trường) ---- */
.lm-lbl { display: block; font-size: 10px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px; }
.lm-inp { width: 100%; background: #020617; border: 1px solid #1e293b; border-radius: 8px; padding: 8px 12px; font-size: 14px; color: #e2e8f0; outline: none; }
.lm-inp::placeholder { color: #475569; }
.lm-inp:focus { border-color: #8b5cf6; box-shadow: 0 0 0 1px #8b5cf6; }
/* Icon lịch của input date/datetime-local: đảo màu cho sáng trên nền tối + bấm được cả ô. */
.lm-inp[type="date"], .lm-inp[type="datetime-local"] { cursor: pointer; }
.lm-inp::-webkit-calendar-picker-indicator { filter: invert(0.85); opacity: .65; cursor: pointer; }
.lm-inp::-webkit-calendar-picker-indicator:hover { opacity: 1; }

/* Ghim 5 cột trái bảng địa danh (checkbox, STT, Mã, Tên, Quốc gia) khi cuộn ngang.
   Offset = tổng width các cột trước (theo colgroup: w-12=48, w-14=56, w-36=144, w-72=288). */
.lm-table td.lm-stick, .lm-table th.lm-stick { position: sticky; background-color: #0f172a; }
.lm-table th.lm-stick { z-index: 20; }
.lm-table td.lm-stick { z-index: 5; }
.lm-table .lm-c1 { left: 0; }
.lm-table .lm-c2 { left: 48px; }
.lm-table .lm-c3 { left: 104px; }
.lm-table .lm-c4 { left: 248px; }
.lm-table .lm-c5 { left: 536px; box-shadow: 8px 0 10px -8px rgba(0, 0, 0, .6); }
/* Giữ nền tối khi rê chuột lên dòng (cột ghim không bị lộ nội dung cuộn phía sau). */
.lm-table tbody tr:hover td.lm-stick { background-color: #131c31; }
