:root { --ink:#12263c; --muted:#5f7185; --line:#d9e3e8; --paper:#fff; --canvas:#edf4f5; --teal:#067781; --teal-dark:#075d65; --mint:#e8f7ee; --violet:#6c3cf0; --shadow:0 16px 42px rgba(21, 50, 72, .16); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ink); }
* { box-sizing:border-box; }
body { margin:0; background:var(--canvas); }
button, input { font:inherit; }
button { cursor:pointer; }
.topbar,.admin-header { height:74px; padding:0 26px; display:flex; align-items:center; justify-content:space-between; gap:18px; background:var(--paper); border-bottom:1px solid var(--line); position:relative; z-index:4; }
.brand { color:var(--ink); display:flex; align-items:center; gap:12px; text-decoration:none; letter-spacing:.01em; }
.brand-mark { display:grid; width:48px; height:48px; place-items:center; background:var(--teal); border-radius:14px; color:#fff; font-size:13px; font-weight:900; }
.brand strong,.brand small { display:block; }
.brand strong { font-size:15px; } .brand small { font-size:13px; color:var(--muted); margin-top:2px; }
.top-actions { display:flex; align-items:center; gap:14px; }
.data-badge,.pill { display:inline-flex; align-items:center; border-radius:999px; padding:9px 13px; background:var(--mint); color:#16734c; font-size:13px; white-space:nowrap; }
.data-badge[data-tone="warning"] { color:#8b5f00; background:#fff5d8; }.data-badge[data-tone="error"] { color:#a72b2b; background:#ffebeb; }
.admin-link,.back-link { color:var(--teal-dark); font-size:14px; font-weight:800; text-decoration:none; }
.map-shell { height:calc(100dvh - 74px); min-height:620px; position:relative; overflow:hidden; background:#bcd6db; }
#map { position:absolute; inset:0; }
.map-card { background:rgba(255,255,255,.95); border:1px solid rgba(214,225,229,.96); border-radius:17px; box-shadow:0 8px 25px rgba(13,42,55,.18); position:absolute; z-index:2; }
.search-card { top:22px; left:22px; width:min(414px,calc(100% - 44px)); padding:16px; }
.search-card label { display:block; font-size:15px; font-weight:800; margin-bottom:9px; }
.search-row { display:flex; gap:8px; }.search-row input { min-width:0; flex:1; border:1px solid #cad7de; padding:12px; border-radius:10px; outline-color:var(--teal); }.search-row button,.upload-form button,.stack-form button,.publish-button { color:#fff; border:0; background:var(--teal); font-weight:850; border-radius:10px; padding:11px 16px; }
.search-results { max-height:205px; overflow:auto; padding:0; margin:9px 0 0; list-style:none; }.search-results li { color:var(--muted); font-size:14px; }.search-results button { width:100%; text-align:left; padding:10px 4px; border:0; border-bottom:1px solid #ecf1f3; color:var(--ink); background:none; font-size:13px; }
.controls-card { top:22px; right:22px; padding:10px; display:flex; gap:7px; }.control-button { color:#355065; background:#fff; padding:9px 12px; border:1px solid #d1dde3; border-radius:9px; font-size:13px; font-weight:750; }.control-button.active { background:var(--teal); border-color:var(--teal); color:#fff; }
.layers-card { top:82px; right:22px; width:278px; padding:14px; }.card-title { margin:0 0 9px; font-weight:850; }.layer-row { display:grid; grid-template-columns:auto 1fr auto; gap:8px; align-items:center; min-height:34px; font-size:13px; }.layer-row input { accent-color:var(--teal); }.layer-row em { color:#718395; font-size:11px; font-style:normal; text-align:right; }.layer-row.muted { color:#8090a0; }
.legend-card { left:22px; bottom:36px; width:310px; max-height:min(45vh,430px); overflow:auto; }.legend-heading { border:0; display:flex; justify-content:space-between; width:100%; padding:16px; color:var(--ink); background:transparent; font-weight:850; text-align:left; }.legend-list { padding:0 14px 12px; }.legend-row { display:grid; grid-template-columns:15px 12px 1fr auto; align-items:center; gap:8px; min-height:28px; font-size:12px; }.legend-row input { margin:0; accent-color:var(--teal); }.legend-row i { width:12px; height:12px; border:1px solid rgba(0,0,0,.3); border-radius:3px; }.legend-row em { color:#6f8192; font-style:normal; }.legend-dataset-title { margin:11px 0 5px; color:#557083; font-size:11px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }.legend-dataset-title:first-child { margin-top:0; }.legend-placeholder { margin:0; color:var(--muted); font-size:13px; }
.info-panel { position:absolute; z-index:3; right:24px; top:232px; width:min(410px,calc(100% - 48px)); padding:20px; background:#fff; box-shadow:var(--shadow); border-radius:20px; transform:translateX(calc(100% + 40px)); transition:transform .22s ease; }.info-panel.open { transform:translateX(0); }.close-panel { position:absolute; right:12px; top:9px; width:30px; height:30px; border:0; background:transparent; font-size:25px; color:#6d7f8d; }.eyebrow { color:var(--teal); font-size:11px; font-weight:900; letter-spacing:.085em; margin:0 0 8px; }.info-panel h1,.admin-intro h1,.auth-card h1 { margin:0; font-size:23px; line-height:1.22; }.info-subtitle { margin:7px 0 15px; color:var(--muted); font-size:14px; line-height:1.45; }.info-details { display:grid; grid-template-columns:132px minmax(0,1fr); gap:9px 12px; margin:0; font-size:13px; line-height:1.35; }.info-details dt { color:#728496; }.info-details dd { margin:0; color:#192c3d; font-weight:700; overflow-wrap:anywhere; white-space:pre-line; }
.disclaimer { position:absolute; z-index:2; left:50%; bottom:12px; max-width:min(840px,calc(100% - 380px)); transform:translateX(-50%); margin:0; padding:9px 14px; color:#445d70; background:rgba(255,255,255,.92); border-radius:9px; text-align:center; font-size:11px; line-height:1.4; }.map-empty { position:absolute; z-index:2; left:50%; top:50%; width:min(430px,calc(100% - 40px)); transform:translate(-50%,-50%); padding:24px; text-align:center; border-radius:16px; color:#19304a; background:#fff; box-shadow:var(--shadow); }.map-empty strong,.map-empty span { display:block; }.map-empty span { color:var(--muted); margin-top:8px; line-height:1.5; font-size:14px; }

.admin-body { min-height:100dvh; }.admin-shell { max-width:1120px; margin:0 auto; padding:46px 24px 68px; }.auth-card { max-width:470px; margin:70px auto; padding:32px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 12px 36px rgba(31,57,74,.1); }.auth-card p { color:var(--muted); line-height:1.55; }.stack-form,.upload-form { display:grid; gap:15px; margin-top:20px; }.stack-form label,.upload-form > label,.form-grid label { display:grid; gap:7px; color:#365064; font-size:13px; font-weight:750; }.stack-form input,.upload-form input:not([type="file"]),.upload-form select { width:100%; padding:12px; color:var(--ink); background:#fff; border:1px solid #cbd8de; border-radius:9px; outline-color:var(--teal); }.admin-intro { display:flex; justify-content:space-between; align-items:start; gap:24px; margin-bottom:25px; }.admin-intro > div > p:last-child { max-width:690px; color:var(--muted); line-height:1.55; margin:10px 0 0; }.secondary-button { color:#375265; background:#fff; border:1px solid #cbd8de; padding:10px 13px; border-radius:9px; font-weight:800; }.admin-card { padding:27px; margin-top:20px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 8px 25px rgba(31,57,74,.06); }.section-heading { display:flex; justify-content:space-between; align-items:start; gap:18px; }.section-heading h2 { margin:0; font-size:20px; }.form-grid { display:grid; grid-template-columns:1.15fr 1fr 160px; gap:13px; }.file-drop { min-height:135px; place-items:center; align-content:center; text-align:center; border:2px dashed #a9c6ca; border-radius:14px; color:var(--teal-dark) !important; background:#f5fbfb; cursor:pointer; }.file-drop input { width:1px; height:1px; overflow:hidden; opacity:0; position:absolute; }.file-drop span { font-size:15px; }.file-drop small { color:#6c8390; font-weight:500; margin-top:5px; }.form-message { min-height:22px; margin:14px 0 0; color:#396579; font-size:13px; }.draft-list { display:grid; gap:13px; margin-top:18px; }.draft-item { display:flex; justify-content:space-between; gap:20px; padding:18px; border:1px solid #dce6ea; border-radius:14px; }.draft-item h3 { margin:0; font-size:15px; overflow-wrap:anywhere; }.draft-item p { margin:6px 0 0; color:var(--muted); font-size:13px; }.draft-item small { color:#788998; }.draft-layers { columns:2; gap:20px; padding:0; margin:12px 0; list-style:none; color:#50697b; font-size:12px; }.draft-layers li { display:flex; justify-content:space-between; break-inside:avoid; gap:12px; }.draft-actions { display:grid; align-content:center; align-self:center; gap:9px; min-width:132px; }.publish-button { min-width:118px; align-self:center; background:var(--violet); }.delete-button { min-width:118px; padding:10px 13px; color:#ad3131; background:#fff; border:1px solid #e5bebe; border-radius:10px; font-weight:800; }.delete-button:disabled,.publish-button:disabled,.upload-form button:disabled { cursor:wait; opacity:.65; }.muted-copy { margin:0; color:var(--muted); }

/* Quản lý nhiều tờ bản đồ và văn bản quy hoạch */
.sheets-card { top:276px; right:22px; width:300px; max-height:min(37vh,360px); padding:14px; overflow:auto; }.sheet-list { display:grid; gap:2px; }.sheet-dataset-title { margin:11px 0 4px; color:#557083; font-size:11px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }.sheet-dataset-title:first-child { margin-top:0; }.sheet-row { display:grid; grid-template-columns:15px 1fr auto; align-items:center; gap:8px; min-height:29px; color:#244057; font-size:12px; }.sheet-row input { margin:0; accent-color:var(--teal); }.sheet-row span { overflow-wrap:anywhere; }.sheet-row em { color:#6f8192; font-style:normal; font-size:11px; }
.left-map-stack { position:absolute; z-index:2; left:22px; bottom:36px; width:310px; display:grid; gap:12px; }.left-map-stack .map-card { position:relative; inset:auto; width:100%; }.documents-card { max-height:235px; overflow:auto; }.document-body { padding:0 16px 15px; color:#415b6d; font-size:12px; line-height:1.55; white-space:pre-wrap; }.document-body p { margin:0; }.left-map-stack .legend-card { max-height:min(34vh,325px); overflow:auto; }.info-panel { top:430px; max-height:calc(100dvh - 458px); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }.upload-form textarea { width:100%; min-height:140px; padding:12px; resize:vertical; color:var(--ink); background:#fff; border:1px solid #cbd8de; border-radius:9px; outline-color:var(--teal); line-height:1.55; }
@media (max-width:760px) { .topbar,.admin-header { height:65px; padding:0 14px; }.brand-mark { width:38px; height:38px; border-radius:11px; font-size:11px; }.brand strong { font-size:12px; }.brand small { font-size:11px; }.data-badge { display:none; }.map-shell { height:calc(100dvh - 65px); min-height:590px; }.search-card { top:12px; left:12px; width:calc(100% - 24px); }.controls-card { top:108px; left:12px; right:auto; }.layers-card { display:none; }.sheets-card { top:156px; right:12px; width:min(280px,calc(100% - 24px)); max-height:170px; }.left-map-stack { left:12px; bottom:27px; width:calc(100% - 24px); gap:8px; }.left-map-stack .map-card { left:auto; right:auto; bottom:auto; width:100%; }.left-map-stack .documents-card { max-height:135px; }.left-map-stack .legend-card { left:auto; bottom:auto; width:100%; max-height:165px; }.info-panel { top:auto; right:12px; bottom:30px; width:calc(100% - 24px); max-height:calc(100dvh - 120px); padding:20px; transform:translateY(calc(100% + 45px)); }.info-panel.open { transform:translateY(0); }.disclaimer { display:none; }.admin-shell { padding:30px 15px 50px; }.admin-intro,.section-heading,.draft-item { display:grid; }.admin-intro { gap:12px; }.admin-intro .secondary-button { justify-self:start; }.admin-card,.auth-card { padding:20px; }.form-grid { grid-template-columns:1fr; }.draft-item { gap:14px; }.draft-actions { justify-items:start; }.publish-button { justify-self:start; }.pill { white-space:normal; }.draft-layers { columns:1; } }

/* Tra cứu tờ / thửa, văn bản theo tờ và điều chỉnh độ hiển thị */
.search-card { width:min(430px,calc(100% - 44px)); }
.search-title { margin:0 0 10px; font-size:15px; font-weight:850; }
.parcel-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.parcel-grid label { margin:0; color:#365064; font-size:12px; }
.parcel-grid input { width:100%; margin-top:5px; padding:10px; border:1px solid #cad7de; border-radius:9px; outline-color:var(--teal); }
.parcel-lookup-button { width:100%; margin-top:9px; border:0; border-radius:9px; padding:10px 14px; color:#fff; background:var(--teal); font-weight:850; }
.parcel-lookup-hint { margin:8px 0 0; color:#6a8290; font-size:11px; line-height:1.4; }
.parcel-lookup-message { min-height:0; margin:8px 0 0; color:#557083; font-size:12px; line-height:1.4; font-weight:750; }
.parcel-results { margin-top:5px; }
.search-divider { margin:13px 0 9px; padding-top:12px; border-top:1px solid #e2eaee; color:#557083; font-size:11px; font-weight:900; letter-spacing:.03em; text-transform:uppercase; }
.opacity-card { right:22px; bottom:36px; width:300px; padding:14px; }
.opacity-card label { display:flex; justify-content:space-between; gap:12px; color:#244057; font-size:13px; font-weight:850; }
.opacity-card output { color:var(--teal); font-variant-numeric:tabular-nums; }
.opacity-card input { width:100%; margin:11px 0 1px; accent-color:var(--teal); }
.document-entry + .document-entry { margin-top:12px; padding-top:12px; border-top:1px solid #e3eaed; }
.document-entry h3 { margin:0; color:#274459; font-size:12px; line-height:1.35; }
.document-entry .document-meta { margin:4px 0 0; color:#6b8392; font-size:10px; font-weight:800; text-transform:uppercase; }
.document-entry p:last-child { margin:6px 0 0; white-space:pre-wrap; }
.document-link { display:inline-block; margin-top:8px; color:var(--teal-dark); font-weight:850; font-size:12px; text-decoration:underline; overflow-wrap:anywhere; }
.sheet-note-list { display:grid; gap:14px; margin-top:18px; }
.sheet-note-item { display:grid; grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr); gap:20px; padding:18px; border:1px solid #dce6ea; border-radius:14px; }
.sheet-note-item h3 { margin:0; color:#18354c; font-size:16px; }
.sheet-note-form { display:grid; gap:11px; }
.sheet-note-form label { display:grid; gap:7px; color:#365064; font-size:12px; font-weight:750; }
.sheet-note-form input,.sheet-note-form textarea { width:100%; padding:10px; color:var(--ink); border:1px solid #cbd8de; border-radius:9px; outline-color:var(--teal); background:#fff; }
.sheet-note-form textarea { min-height:105px; resize:vertical; line-height:1.5; }
.sheet-note-form button { justify-self:start; border:0; border-radius:9px; padding:10px 13px; color:#fff; background:var(--teal); font-weight:850; }
@media (max-width:760px) { .parcel-grid { grid-template-columns:1fr; }.search-card { max-height:calc(100dvh - 89px); overflow:auto; }.controls-card { top:auto; bottom:235px; }.sheets-card { top:164px; }.opacity-card { right:12px; bottom:27px; width:min(280px,calc(100% - 24px)); }.left-map-stack { bottom:90px; }.sheet-note-item { grid-template-columns:1fr; gap:14px; } }

/* Bố cục gọn: tra cứu tờ/thửa, pháp lý ở trái; lớp và tờ rõ ràng ở phải */
.search-card { padding:16px; }
.parcel-results { max-height:150px; }
.data-browser-card { top:82px; right:22px; width:360px; max-height:calc(100dvh - 220px); padding:0; overflow:hidden; }
.data-browser-section { padding:16px; }
.cadastral-label-row { margin-top:10px; padding-top:10px; border-top:1px solid #e1eaed; }
.cadastral-label-row em { color:#0b7d86; font-size:10px; }
.data-sheet-section { margin-top:2px; padding-top:20px; border-top:2px solid #dbe7eb; background:rgba(246,250,251,.78); }
.data-sheet-section .card-title { margin-bottom:12px; }
.data-sheet-section .sheet-list { max-height:min(43dvh,390px); padding-right:5px; overflow:auto; scrollbar-color:#94b8bd transparent; scrollbar-width:thin; }
.data-sheet-section .sheet-list::-webkit-scrollbar { width:8px; }.data-sheet-section .sheet-list::-webkit-scrollbar-thumb { background:#a8c8cc; border-radius:10px; }
.documents-card { max-height:250px; overflow:hidden; }.document-body { max-height:194px; overflow:auto; padding-right:12px; scrollbar-color:#9dbfc3 transparent; scrollbar-width:thin; }.document-body::-webkit-scrollbar { width:8px; }.document-body::-webkit-scrollbar-thumb { background:#abc7ca; border-radius:10px; }
.left-map-stack { gap:12px; }.left-map-stack .legend-card { max-height:min(34dvh,325px); }
.opacity-card { z-index:3; }
.sheet-note-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:10px; }
.draft-editor-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.sheet-note-actions .delete-published-button { border:1px solid #e5bebe; border-radius:9px; padding:10px 13px; color:#ad3131; background:#fff; font-weight:850; }
.sheet-note-actions .delete-published-button:disabled { cursor:wait; opacity:.65; }
@media (max-width:760px) { .data-browser-card { top:164px; right:12px; width:min(320px,calc(100% - 24px)); max-height:310px; }.data-sheet-section .sheet-list { max-height:150px; }.opacity-card { z-index:4; }.documents-card { max-height:210px; }.document-body { max-height:155px; } }

/* Quản trị gọn: tải tệp trước, chỉnh thông tin và xuất bản ở bước sau */
.upload-card .muted-copy { margin:12px 0 0; }
.source-file-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.draft-item { display:grid; grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr); align-items:start; }
.draft-summary { min-width:0; }
.draft-metadata-form { display:grid; gap:11px; }
.draft-metadata-form label { display:grid; gap:7px; color:#365064; font-size:12px; font-weight:750; }
.draft-metadata-form input,.draft-metadata-form textarea { width:100%; padding:10px; color:var(--ink); border:1px solid #cbd8de; border-radius:9px; outline-color:var(--teal); background:#fff; }
.draft-metadata-form textarea { min-height:105px; resize:vertical; line-height:1.5; }
.draft-metadata-form .form-message { margin:0; }
.draft-metadata-form .draft-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; min-width:0; }
.draft-metadata-form .draft-actions button { min-width:auto; align-self:auto; }
.draft-metadata-form .secondary-button { padding:10px 13px; }
@media (max-width:760px) { .draft-item { grid-template-columns:1fr; }.draft-metadata-form .draft-actions { justify-items:start; }.source-file-grid { grid-template-columns:1fr; } }

/* Hiệu chỉnh chỉ tiêu trực tiếp trên vùng của bản nháp */
.draft-editor-card .muted-copy { max-width:900px; line-height:1.55; }
.draft-editor-toolbar { display:grid; grid-template-columns:1.1fr auto 1.15fr; align-items:end; gap:12px; margin-top:18px; }
.draft-editor-toolbar > label:not(.editor-filter),.draft-editor-form label { display:grid; gap:7px; color:#365064; font-size:12px; font-weight:750; }
.draft-editor-toolbar select,.draft-editor-form input { width:100%; padding:10px; color:var(--ink); border:1px solid #cbd8de; border-radius:9px; outline-color:var(--teal); background:#fff; }
.editor-filter { display:flex; align-items:center; gap:8px; min-height:39px; color:#365064; font-size:12px; font-weight:800; white-space:nowrap; }
.editor-filter input { margin:0; accent-color:var(--teal); }
.draft-editor-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr); gap:16px; margin-top:16px; }
.draft-editor-map-wrap { position:relative; min-height:505px; overflow:hidden; border:1px solid #c9dce0; border-radius:14px; background:#d7e9ec; }
#draft-editor-map { position:absolute; inset:0; }
.draft-editor-map-note { position:absolute; z-index:1; left:12px; right:12px; bottom:11px; margin:0; padding:8px 10px; border-radius:8px; color:#365064; background:rgba(255,255,255,.93); box-shadow:0 2px 10px rgba(32,63,78,.12); font-size:12px; text-align:center; pointer-events:none; }
.draft-editor-form { align-content:start; display:grid; gap:11px; min-width:0; padding:17px; border:1px solid #dce6ea; border-radius:14px; background:#f8fbfc; }
.editor-feature-title { margin:0; color:#18354c; font-size:17px; font-weight:900; line-height:1.3; }
.draft-editor-form .muted-copy { margin:0; font-size:12px; }
.editor-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.draft-editor-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:2px; }
.draft-editor-actions button { border:0; border-radius:9px; padding:10px 13px; color:#fff; background:var(--teal); font-weight:850; }
.draft-editor-actions .secondary-button { color:#375265; background:#fff; border:1px solid #cbd8de; }
.draft-editor-actions button:disabled { cursor:not-allowed; opacity:.55; }
@media (max-width:860px) { .draft-editor-toolbar { grid-template-columns:1fr 1fr; }.editor-filter { grid-column:1/-1; }.draft-editor-layout { grid-template-columns:1fr; }.draft-editor-map-wrap { min-height:420px; } }
@media (max-width:520px) { .draft-editor-toolbar,.editor-field-grid { grid-template-columns:1fr; }.draft-editor-map-wrap { min-height:360px; }.editor-filter { grid-column:auto; white-space:normal; } }

/* Thửa đang tra cứu: ranh nổi bật và nhãn chiều dài cạnh trực tiếp trên bản đồ */
.parcel-side-label { display:block; padding:3px 5px; border:1px solid rgba(117,62,0,.82); border-radius:5px; color:#251a00; background:rgba(255,250,205,.96); box-shadow:0 1px 5px rgba(24,35,41,.42); font:800 11px/1.15 Inter,ui-sans-serif,system-ui,sans-serif; white-space:nowrap; pointer-events:none; }
@media (max-width:760px) { .parcel-side-label { padding:2px 4px; font-size:10px; } }

/* Trang tra cứu thửa riêng: bản đồ rộng, thông tin dài có vùng cuộn độc lập. */
.parcel-detail-body { min-height:100dvh; overflow:hidden; }
.parcel-detail-shell { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,500px); height:calc(100dvh - 74px); min-height:640px; background:#d7e8ea; }
.parcel-detail-map-wrap { position:relative; min-width:0; overflow:hidden; background:#9dbfc5; }
#parcel-detail-map { position:absolute; inset:0; }
.parcel-map-status { position:absolute; z-index:2; top:18px; left:18px; max-width:min(520px,calc(100% - 38px)); margin:0; padding:10px 13px; border:1px solid rgba(205,222,227,.96); border-radius:10px; color:#36566a; background:rgba(255,255,255,.94); box-shadow:0 4px 15px rgba(21,50,72,.12); font-size:13px; font-weight:750; }
.parcel-map-status[data-tone="success"] { color:#197453; background:rgba(237,251,241,.95); }.parcel-map-status[data-tone="error"] { color:#9b3030; background:rgba(255,239,239,.96); }
.parcel-map-controls { position:absolute; z-index:2; top:18px; right:18px; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; max-width:calc(100% - 40px); padding:9px; border:1px solid rgba(214,225,229,.96); border-radius:14px; background:rgba(255,255,255,.94); box-shadow:0 7px 22px rgba(13,42,55,.16); }
.parcel-detail-panel { overflow:auto; overscroll-behavior:contain; padding:28px 26px 50px; background:#fff; border-left:1px solid #d8e4e8; box-shadow:-12px 0 30px rgba(26,55,70,.08); scrollbar-color:#98b7bd transparent; scrollbar-width:thin; }
.parcel-detail-return { display:inline-block; margin-bottom:28px; color:var(--teal-dark); font-size:13px; font-weight:850; text-decoration:none; }
.parcel-detail-panel h1 { margin:0; color:#12263c; font-size:30px; line-height:1.14; }
.parcel-detail-subtitle { margin:10px 0 0; color:#5f7185; font-size:14px; line-height:1.55; }
.parcel-detail-section { margin-top:28px; padding-top:22px; border-top:1px solid #dce7eb; }
.parcel-detail-section h2 { margin:0 0 13px; color:#18354c; font-size:18px; }
.detail-section-copy { margin:0; color:#5b7485; font-size:13px; line-height:1.55; }
.detail-dl { display:grid; grid-template-columns:minmax(115px,.75fr) minmax(0,1.25fr); gap:10px 14px; margin:0; font-size:13px; line-height:1.48; }
.detail-dl dt { color:#657e8f; }.detail-dl dd { margin:0; color:#172d3f; font-weight:750; overflow-wrap:anywhere; white-space:pre-line; }
.planning-result-list { display:grid; gap:13px; max-height:min(56dvh,720px); margin-top:15px; padding-right:7px; overflow-y:auto; overscroll-behavior:contain; scrollbar-color:#9bbbc0 transparent; scrollbar-width:thin; }
.planning-result-list::-webkit-scrollbar { width:8px; }.planning-result-list::-webkit-scrollbar-thumb { border-radius:10px; background:#abc6ca; }
.planning-breakdown { margin-top:20px; }
.planning-breakdown-heading,.planning-detail-heading { margin:0 0 10px; color:#18354c; font-size:15px; line-height:1.35; }
.planning-detail-heading { margin-top:25px; }
.planning-breakdown-list { display:grid; gap:7px; }
.planning-breakdown-row { display:grid; grid-template-columns:12px minmax(0,1fr) auto; align-items:center; gap:9px; padding:9px 10px; border:1px solid #dbe7ea; border-radius:10px; background:#f8fbfc; }
.planning-breakdown-row > i { width:12px; height:12px; border:1px solid rgba(22,42,56,.3); border-radius:3px; }
.planning-breakdown-name { min-width:0; display:grid; gap:2px; }
.planning-breakdown-name strong { color:#193348; font-size:12px; line-height:1.3; overflow-wrap:anywhere; }
.planning-breakdown-name small { color:#6b8290; font-size:10px; line-height:1.25; }
.planning-breakdown-value { color:#0b6870; font-size:11px; font-weight:850; text-align:right; white-space:nowrap; }
.planning-result { padding:16px; border:1px solid #d7e5e8; border-radius:13px; background:#f8fbfc; }
.planning-result h3 { margin:0; color:#0b5861; font-size:16px; line-height:1.35; }.planning-result-meta { margin:5px 0 14px; color:#668092; font-size:11px; font-weight:850; letter-spacing:.02em; text-transform:uppercase; }.planning-dl { grid-template-columns:minmax(112px,.72fr) minmax(0,1.28fr); font-size:12px; }.planning-extra-heading { margin:17px 0 10px; padding-top:14px; border-top:1px dashed #c5d8db; color:#365a68; font-size:13px; line-height:1.35; }.planning-extra-dl { padding:11px; border:1px solid #dbe8ea; border-radius:9px; background:#fff; }
.parcel-detail-warning { margin-top:20px; padding:13px 14px; border:1px solid #f0cf98; border-radius:11px; color:#7d5200; background:#fff8e6; font-size:13px; line-height:1.52; }
.parcel-detail-body .parcel-side-label { z-index:3; }
@media (max-width:980px) { .parcel-detail-body { overflow:auto; }.parcel-detail-shell { display:block; height:auto; min-height:0; }.parcel-detail-map-wrap { height:58dvh; min-height:440px; }.parcel-detail-panel { min-height:42dvh; border-top:1px solid #d8e4e8; border-left:0; overflow:visible; }.parcel-map-status { top:14px; left:14px; }.parcel-map-controls { top:auto; right:14px; bottom:14px; } }
@media (max-width:620px) { .parcel-detail-shell { min-height:0; }.parcel-detail-map-wrap { height:52dvh; min-height:350px; }.parcel-detail-panel { padding:22px 17px 42px; }.parcel-detail-panel h1 { font-size:25px; }.parcel-map-status { max-width:calc(100% - 28px); font-size:12px; }.parcel-map-controls { left:14px; justify-content:flex-start; max-width:calc(100% - 28px); }.parcel-map-controls .control-button { padding:8px 9px; font-size:12px; }.detail-dl { grid-template-columns:1fr; gap:3px; }.detail-dl dt { margin-top:8px; }.planning-dl { grid-template-columns:1fr; }.planning-result-list { max-height:none; overflow:visible; padding-right:0; }.planning-breakdown-row { grid-template-columns:12px minmax(0,1fr); }.planning-breakdown-value { grid-column:2; text-align:left; } }

/* V29: thông tin hỗ trợ và danh sách tờ lớn (hàng trăm tờ địa chính). */
.topbar { justify-content:flex-start; }
.support-header { position:absolute; left:50%; top:50%; z-index:6; transform:translate(-50%,-50%); }
.support-toggle { display:grid; min-width:min(540px,46vw); gap:3px; padding:8px 17px; border:1px solid #b8d7db; border-radius:12px; color:#075d65; background:#f5fbfb; box-shadow:0 3px 13px rgba(22,74,82,.09); text-align:center; }
.support-toggle span { color:#247078; font-size:10px; font-weight:900; letter-spacing:.055em; }
.support-toggle strong { font-size:12px; line-height:1.28; }
.support-popover { position:absolute; top:calc(100% + 9px); left:50%; width:min(530px,calc(100vw - 36px)); padding:15px; border:1px solid #c6dfe1; border-radius:14px; color:#193a4c; background:#fff; box-shadow:var(--shadow); transform:translateX(-50%); }
.support-popover > p { margin:0 0 10px; color:#0b7078; font-size:11px; font-weight:900; letter-spacing:.07em; }
.support-list { display:flex; flex-wrap:wrap; gap:8px; }
.support-contact { display:grid; gap:2px; min-width:150px; padding:9px 11px; border-radius:10px; background:#f2faf9; }
.support-contact strong { color:#173b4c; font-size:12px; }.support-contact a { color:#08717b; font-size:13px; font-weight:850; text-decoration:none; }
.sheet-heading-row { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }.sheet-heading-row .card-title { margin:0; }.sheet-heading-row small { color:#688292; font-size:10px; font-weight:750; text-align:right; }
.sheet-filter { width:100%; margin:11px 0 10px; padding:9px 10px; border:1px solid #c9d9df; border-radius:8px; color:#1f3d50; background:#fff; outline-color:var(--teal); font-size:12px; }
.sheet-list { gap:7px; }
.sheet-group { border:1px solid #dce8eb; border-radius:10px; background:#fff; overflow:hidden; }
.sheet-group > summary { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 10px; color:#3d5a6c; cursor:pointer; font-size:11px; font-weight:900; letter-spacing:.025em; text-transform:uppercase; list-style:none; }
.sheet-group > summary::-webkit-details-marker { display:none; }.sheet-group > summary::after { content:'⌄'; color:#63808f; font-size:15px; line-height:1; }.sheet-group[open] > summary::after { content:'⌃'; }
.sheet-group > summary small { color:#678091; font-size:10px; letter-spacing:0; text-transform:none; }
.sheet-group-items { display:grid; gap:1px; padding:2px 7px 7px; border-top:1px solid #e4edef; }
.sheet-row { min-height:33px; padding:4px 2px; }.sheet-row span { line-height:1.22; }.sheet-row.loading { opacity:.58; pointer-events:none; }.sheet-row.selected span { color:#075d65; font-weight:850; }
.sheet-row .sheet-status { min-width:34px; color:#0b7d86; font-size:10px; font-weight:850; text-align:right; }
.site-settings-card .muted-copy { max-width:900px; line-height:1.55; }
.site-settings-form { display:grid; gap:15px; margin-top:18px; }.contact-config-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.contact-config-grid label { display:grid; gap:7px; color:#365064; font-size:12px; font-weight:750; }.contact-config-grid input { width:100%; padding:10px; color:var(--ink); border:1px solid #cbd8de; border-radius:9px; outline-color:var(--teal); background:#fff; }
.default-layer-options { display:flex; flex-wrap:wrap; gap:10px 18px; margin:0; padding:13px 15px; border:1px solid #d6e4e7; border-radius:11px; }.default-layer-options legend { padding:0 5px; color:#365064; font-size:12px; font-weight:850; }.default-layer-options label { display:flex; align-items:center; gap:7px; color:#29455a; font-size:13px; font-weight:750; }.default-layer-options input { margin:0; accent-color:var(--teal); }
.site-settings-actions { display:flex; flex-wrap:wrap; align-items:center; gap:13px; }.site-settings-actions button { border:0; border-radius:9px; padding:10px 14px; color:#fff; background:var(--teal); font-weight:850; }.site-settings-actions .form-message { min-height:0; margin:0; }
@media (max-width:980px) { .support-toggle { min-width:330px; max-width:42vw; }.support-header { left:auto; right:160px; transform:translateY(-50%); }.support-popover { left:auto; right:0; transform:none; }.topbar .brand { flex-shrink:0; } }
@media (max-width:760px) { .support-header { position:static; margin-left:auto; transform:none; }.support-toggle { display:block; min-width:0; max-width:none; padding:7px 9px; }.support-toggle span { display:none; }.support-toggle strong { font-size:11px; }.support-popover { top:58px; left:12px; right:12px; width:auto; transform:none; }.top-actions .admin-link { font-size:12px; }.contact-config-grid { grid-template-columns:1fr; }.sheet-heading-row small { max-width:120px; } }

/* V30: điện thoại dùng bảng điều khiển dạng ngăn kéo, không để các thẻ chồng lên nhau. */
.mobile-map-toolbar { display:none; }
@media (max-width:760px) {
  .topbar { min-width:0; gap:8px; }
  .topbar .brand { min-width:0; gap:9px; }
  .topbar .brand > span:last-child { min-width:0; }
  .topbar .brand strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .support-header { flex:0 0 auto; margin-left:auto; }
  .support-toggle { min-width:64px; min-height:36px; padding:7px 8px; }
  .support-toggle strong { display:block; overflow:hidden; color:transparent; font-size:0; line-height:1; }
  .support-toggle strong::after { content:'Hỗ trợ'; color:#075d65; font-size:12px; font-weight:850; }
  .support-popover { position:fixed; z-index:20; top:72px; left:10px; right:10px; width:auto; max-height:calc(100dvh - 88px); overflow:auto; transform:none; }
  .top-actions { flex:0 0 auto; gap:0; }
  .top-actions .admin-link { padding:8px 0 8px 4px; font-size:12px; }

  .search-card { top:12px; left:12px; width:calc(100% - 24px); max-height:none; overflow:visible; }
  .controls-card { top:auto; right:12px; bottom:62px; left:auto; z-index:5; padding:7px; }
  .control-button { padding:8px 9px; font-size:12px; }
  .opacity-card { display:none; }

  .mobile-map-toolbar { position:absolute; z-index:10; bottom:12px; left:12px; display:flex; gap:7px; max-width:calc(100% - 155px); }
  .mobile-map-toolbar button { min-height:36px; padding:8px 10px; border:1px solid #c8dce0; border-radius:10px; color:#23455a; background:rgba(255,255,255,.96); box-shadow:0 5px 16px rgba(14,45,60,.17); font-size:12px; font-weight:850; white-space:nowrap; }
  .mobile-map-toolbar button.active { color:#fff; background:var(--teal); border-color:var(--teal); }

  .data-browser-card,
  .left-map-stack .documents-card,
  .left-map-stack .legend-card { display:none; position:absolute; z-index:8; top:12px; right:12px; bottom:58px; left:12px; width:auto; max-height:none; margin:0; overflow:auto; overscroll-behavior:contain; background:rgba(255,255,255,.985); }
  .data-browser-card.mobile-open,
  .left-map-stack .documents-card.mobile-open,
  .left-map-stack .legend-card.mobile-open { display:block; }
  .data-browser-card { padding:0; }
  .data-browser-card .data-browser-section { padding:15px; }
  .data-browser-card .data-sheet-section { min-height:0; }
  .data-browser-card .data-sheet-section .sheet-list { max-height:none; overflow:visible; }
  .left-map-stack { position:static; display:block; width:auto; }
  .left-map-stack .documents-card,
  .left-map-stack .legend-card { left:12px; bottom:58px; }
  .left-map-stack .documents-card { max-height:none; }
  .left-map-stack .legend-card { max-height:none; }
  .left-map-stack .documents-card .document-body,
  .left-map-stack .legend-card .legend-list { max-height:none; overflow:visible; }
  .left-map-stack .legend-card .legend-list { padding-bottom:18px; }

  .info-panel { z-index:11; right:12px; bottom:58px; width:calc(100% - 24px); max-height:min(62dvh,560px); }
  .maplibregl-ctrl-bottom-right { bottom:62px; }
}

/* V12 – Trung tâm quản lý bản đồ dạng bảng, bộ lọc, phân trang và bảng trượt */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.admin-shell-wide { max-width:1420px; }
.admin-intro-compact { align-items:center; }
.admin-intro-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.primary-button { padding:11px 16px; border:0; border-radius:10px; color:#fff; background:var(--teal); font-weight:850; }
.map-manager-card { padding:0; overflow:visible; }
.manager-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding:26px 28px 20px; }
.manager-heading h2 { margin:0 0 7px; font-size:22px; }
.manager-summary { display:grid; grid-template-columns:repeat(4,minmax(88px,1fr)); gap:8px; min-width:min(520px,48%); }
.manager-summary span { display:grid; gap:3px; padding:12px 14px; border:1px solid #dde8eb; border-radius:13px; background:#f7fafb; }
.manager-summary strong { color:#17364b; font-size:20px; }
.manager-summary small { color:#6b8190; font-size:11px; font-weight:800; }
.manager-tabs { display:flex; gap:6px; padding:0 28px; border-bottom:1px solid #dce6ea; overflow-x:auto; }
.manager-tabs button { display:flex; align-items:center; gap:7px; padding:12px 14px; border:0; border-bottom:3px solid transparent; color:#587084; background:transparent; font-weight:850; white-space:nowrap; }
.manager-tabs button span { min-width:24px; padding:3px 7px; border-radius:999px; color:#657d8d; background:#edf3f5; font-size:11px; }
.manager-tabs button.active { color:var(--teal-dark); border-bottom-color:var(--teal); }
.manager-tabs button.active span { color:#fff; background:var(--teal); }
.manager-toolbar { display:grid; grid-template-columns:minmax(260px,1fr) minmax(170px,230px) minmax(150px,200px) minmax(125px,150px); gap:10px; padding:18px 28px 16px; }
.manager-toolbar input,.manager-toolbar select { width:100%; min-height:42px; padding:10px 12px; border:1px solid #cbd8de; border-radius:10px; color:var(--ink); background:#fff; outline-color:var(--teal); }
.manager-search input { padding-left:15px; }
.manager-bulk-bar { display:flex; align-items:center; gap:10px; margin:0 28px 14px; padding:11px 13px; border:1px solid #bcd9dd; border-radius:11px; color:#294b60; background:#f0f9fa; }
.manager-bulk-bar select { min-width:230px; padding:9px 10px; border:1px solid #bfd2d7; border-radius:9px; background:#fff; }
.manager-bulk-bar > button:not(.secondary-button) { padding:9px 13px; border:0; border-radius:9px; color:#fff; background:var(--teal); font-weight:850; }
.manager-table-wrap { position:relative; overflow:visible; border-top:1px solid #e2eaed; }
.manager-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.manager-table th { padding:11px 12px; color:#6a8190; background:#f7fafb; border-bottom:1px solid #dfe8eb; font-size:11px; font-weight:900; text-align:left; text-transform:uppercase; letter-spacing:.035em; }
.manager-table td { padding:13px 12px; border-bottom:1px solid #e7edef; color:#294459; font-size:12px; vertical-align:middle; }
.manager-table tr:hover td { background:#fbfdfd; }
.manager-table th:nth-child(1),.manager-table td:nth-child(1) { width:42px; }
.manager-table th:nth-child(2),.manager-table td:nth-child(2) { width:27%; }
.manager-table th:nth-child(3),.manager-table td:nth-child(3) { width:17%; }
.manager-table th:nth-child(4),.manager-table td:nth-child(4) { width:13%; }
.manager-table th:nth-child(5),.manager-table td:nth-child(5) { width:16%; }
.manager-table th:nth-child(6),.manager-table td:nth-child(6) { width:13%; }
.manager-table th:nth-child(7),.manager-table td:nth-child(7) { width:150px; }
.manager-check-cell { text-align:center!important; }
.manager-check-cell input,.manager-mobile-card input { accent-color:var(--teal); }
.manager-map-name { display:grid; gap:4px; min-width:0; }
.manager-map-name strong { color:#18354c; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
.manager-map-name small { color:#718695; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.manager-layer-label,.manager-data-summary,time { color:#5c7384; line-height:1.4; }
.manager-status { display:inline-flex; align-items:center; gap:6px; padding:6px 9px; border-radius:999px; font-size:11px; font-weight:850; white-space:nowrap; }
.manager-status::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.manager-status.published { color:#16734c; background:#e8f7ee; }
.manager-status.draft { color:#6845cf; background:#f0ebff; }
.manager-status.archived { color:#6f7780; background:#edf0f2; }
.manager-actions-cell { display:flex; justify-content:flex-end; align-items:center; gap:7px; overflow:visible; }
.manager-edit-button { padding:8px 10px; border:1px solid #c7dade; border-radius:8px; color:#24566a; background:#fff; font-weight:850; white-space:nowrap; }
.manager-more { position:relative; }
.manager-more > summary { display:grid; place-items:center; min-width:36px; height:34px; border:1px solid #cbd8de; border-radius:8px; color:#526d7d; background:#fff; cursor:pointer; list-style:none; font-weight:900; }
.manager-more > summary::-webkit-details-marker { display:none; }
.manager-more-menu { position:absolute; z-index:30; top:40px; right:0; display:grid; min-width:220px; padding:7px; border:1px solid #d3e0e4; border-radius:11px; background:#fff; box-shadow:0 14px 32px rgba(22,50,67,.18); }
.manager-more-menu button { padding:9px 10px; border:0; border-radius:7px; color:#27495c; background:transparent; font-size:12px; font-weight:750; text-align:left; }
.manager-more-menu button:hover { background:#f0f6f7; }
.manager-more-menu button.danger { color:#ad3131; }
.manager-footer { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:17px 28px 22px; }
.manager-footer p { margin:0; color:#6a8090; font-size:12px; }
.manager-pagination { display:flex; align-items:center; gap:5px; }
.manager-pagination button { min-width:35px; height:35px; padding:0 10px; border:1px solid #cbd9de; border-radius:8px; color:#355467; background:#fff; font-weight:800; }
.manager-pagination button.active { color:#fff; border-color:var(--teal); background:var(--teal); }
.manager-pagination button:disabled { cursor:not-allowed; opacity:.45; }
.manager-empty { margin:22px 28px; padding:28px; border:1px dashed #bfd1d6; border-radius:14px; color:#405f71; background:#f8fbfc; text-align:center; }
.manager-empty strong,.manager-empty span { display:block; }
.manager-empty span { margin-top:6px; color:#718492; font-size:13px; }
.manager-loading { margin:0; padding:24px; color:#6a8190; text-align:center; }
.manager-message { margin:0 28px 16px; }
.manager-mobile-list { display:none; }

.admin-accordion { padding:0; overflow:hidden; }
.admin-accordion > summary { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px 25px; cursor:pointer; list-style:none; }
.admin-accordion > summary::-webkit-details-marker { display:none; }
.admin-accordion > summary > span:first-child { display:grid; gap:3px; }
.admin-accordion > summary .eyebrow { margin:0; }
.admin-accordion > summary strong { color:#18354c; font-size:17px; }
.accordion-hint { color:#527183; font-size:12px; font-weight:850; }
.accordion-hint::after { content:" ▾"; }
.admin-accordion[open] .accordion-hint::after { content:" ▴"; }
.accordion-body { padding:0 25px 25px; border-top:1px solid #e3ebee; }
.accordion-body > .muted-copy { margin-top:20px; }
.upload-methods { display:grid; gap:20px; padding-top:20px; }
.upload-method { padding:22px; border:1px solid #dce7ea; border-radius:15px; background:#fbfdfd; }
.upload-method + .upload-method { margin-top:0; }

.manager-drawer-backdrop { position:fixed; z-index:80; inset:0; background:rgba(18,38,60,.28); opacity:0; transition:opacity .2s ease; }
.manager-drawer-backdrop.open { opacity:1; }
.manager-drawer { position:fixed; z-index:81; top:0; right:0; width:min(520px,100%); height:100dvh; display:flex; flex-direction:column; background:#fff; box-shadow:-18px 0 46px rgba(20,46,63,.2); transform:translateX(105%); transition:transform .22s ease; }
.manager-drawer.open { transform:translateX(0); }
.manager-drawer-header { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:24px 24px 19px; border-bottom:1px solid #dfe8eb; }
.manager-drawer-header h2 { margin:0 0 6px; color:#18354c; font-size:21px; line-height:1.25; }
.manager-drawer-close { flex:0 0 auto; width:38px; height:38px; border:1px solid #d4e0e4; border-radius:10px; color:#627786; background:#fff; font-size:25px; line-height:1; }
.manager-drawer-form { display:grid; gap:14px; padding:22px 24px 36px; overflow:auto; overscroll-behavior:contain; }
.manager-drawer-form > label { display:grid; gap:7px; color:#365064; font-size:12px; font-weight:800; }
.manager-drawer-form input,.manager-drawer-form textarea { width:100%; padding:11px; border:1px solid #cbd8de; border-radius:9px; color:var(--ink); background:#fff; outline-color:var(--teal); line-height:1.5; }
.manager-drawer-form textarea { min-height:170px; resize:vertical; }
.manager-drawer-meta { display:grid; gap:8px; padding:13px; border-radius:11px; background:#f5f9fa; }
.manager-drawer-meta div { display:grid; grid-template-columns:90px minmax(0,1fr); gap:10px; font-size:12px; }
.manager-drawer-meta span { color:#718695; }
.manager-drawer-meta strong { color:#315064; overflow-wrap:anywhere; }
.manager-drawer-primary-actions,.manager-drawer-secondary-actions { display:flex; flex-wrap:wrap; gap:9px; }
.manager-drawer-primary-actions > button:first-child { padding:11px 15px; border:0; border-radius:9px; color:#fff; background:var(--teal); font-weight:850; }
.manager-drawer-secondary-actions { padding-top:14px; border-top:1px solid #e1e9ec; }
.manager-drawer-secondary-actions .publish-button { min-width:0; }
.manager-drawer-secondary-actions .delete-button { min-width:0; }
body.manager-drawer-open { overflow:hidden; }

.admin-editor-screen { position:fixed; z-index:90; inset:0; display:flex; flex-direction:column; background:#edf4f5; }
.admin-editor-screen[hidden] { display:none; }
.admin-editor-screen-header { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:15px 22px; border-bottom:1px solid #d8e4e8; background:#fff; box-shadow:0 5px 18px rgba(25,54,70,.08); }
.admin-editor-screen-header h2 { margin:0; color:#18354c; font-size:20px; }
.admin-editor-screen-body { flex:1; min-height:0; padding:18px 22px 22px; overflow:auto; }
.admin-editor-screen-body > .muted-copy { max-width:940px; line-height:1.5; }
.admin-editor-screen .draft-editor-layout { min-height:calc(100dvh - 210px); }
.admin-editor-screen .draft-editor-map-wrap { min-height:560px; }
body.admin-editor-open { overflow:hidden; }

@media (max-width:1100px) {
  .manager-heading { display:grid; }
  .manager-summary { min-width:0; width:100%; }
  .manager-toolbar { grid-template-columns:1fr 1fr; }
  .manager-table th:nth-child(5),.manager-table td:nth-child(5) { display:none; }
  .manager-table th:nth-child(2),.manager-table td:nth-child(2) { width:30%; }
}
@media (max-width:760px) {
  .admin-shell-wide { padding:24px 12px 48px; }
  .admin-intro-compact { display:grid; }
  .admin-intro-actions { width:100%; }
  .manager-heading { padding:20px 18px 15px; }
  .manager-summary { grid-template-columns:1fr 1fr; }
  .manager-tabs { padding:0 14px; }
  .manager-toolbar { grid-template-columns:1fr; padding:15px 18px; }
  .manager-bulk-bar { display:grid; margin:0 18px 14px; }
  .manager-bulk-bar select { min-width:0; width:100%; }
  .manager-table-wrap { display:none; }
  .manager-mobile-list { display:grid; gap:10px; padding:0 18px; }
  .manager-mobile-card { display:grid; gap:7px; padding:15px; border:1px solid #dce7ea; border-radius:13px; background:#fff; }
  .manager-mobile-card-top { display:flex; justify-content:space-between; align-items:center; }
  .manager-mobile-card > strong { color:#18354c; font-size:14px; line-height:1.35; }
  .manager-mobile-card > small,.manager-mobile-card > p,.manager-mobile-card > time { margin:0; color:#6a8190; font-size:11px; line-height:1.4; }
  .manager-mobile-actions { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:5px; }
  .manager-mobile-actions > button { padding:8px 12px; border:0; border-radius:8px; color:#fff; background:var(--teal); font-weight:850; }
  .manager-mobile-actions .manager-more > summary { min-width:70px; padding:0 10px; }
  .manager-more-menu { position:fixed; z-index:85; left:18px; right:18px; top:auto; bottom:18px; min-width:0; }
  .manager-footer { display:grid; justify-items:center; padding:17px 18px 20px; }
  .manager-pagination { flex-wrap:wrap; justify-content:center; }
  .manager-message { margin:0 18px 15px; }
  .admin-accordion > summary { padding:18px; }
  .accordion-body { padding:0 18px 20px; }
  .upload-method { padding:17px; }
  .manager-drawer { width:100%; }
  .manager-drawer-header { padding:18px; }
  .manager-drawer-form { padding:18px 18px 32px; }
  .admin-editor-screen-header { align-items:flex-start; padding:12px 14px; }
  .admin-editor-screen-header .draft-editor-heading-actions { justify-content:flex-start; }
  .admin-editor-screen-body { padding:14px; }
  .admin-editor-screen .draft-editor-layout { min-height:auto; }
  .admin-editor-screen .draft-editor-map-wrap { min-height:420px; }
}

/* V14 – Trải nghiệm công khai gọn hơn trên điện thoại và hướng dẫn khi chưa bật lớp. */
.mobile-search-toggle { display:none; }
.search-card-body { display:block; }
.support-admin-link { display:none; }
.control-button:disabled { cursor:not-allowed; opacity:.48; filter:saturate(.45); }
.map-idle-guide { position:absolute; z-index:3; top:50%; left:50%; display:grid; justify-items:center; width:min(360px,calc(100% - 48px)); gap:7px; padding:17px 18px; border:1px solid rgba(184,215,219,.95); border-radius:15px; color:#17384c; background:rgba(255,255,255,.94); box-shadow:0 12px 34px rgba(19,54,70,.18); text-align:center; transform:translate(-50%,-50%); backdrop-filter:blur(8px); }
.map-idle-guide[hidden] { display:none; }
.map-idle-guide strong { font-size:16px; }
.map-idle-guide span { color:#647e8e; font-size:12px; line-height:1.45; }
.map-idle-guide button { margin-top:3px; padding:9px 13px; border:0; border-radius:9px; color:#fff; background:var(--teal); font-size:12px; font-weight:850; }
.data-browser-card.attention { animation:v14-panel-attention .9s ease; }
@keyframes v14-panel-attention { 0%,100% { box-shadow:var(--shadow); } 45% { box-shadow:0 0 0 5px rgba(8,132,140,.22),var(--shadow); } }

@media (max-width:760px) {
  .top-actions { display:none; }
  .support-admin-link { display:block; margin-top:12px; padding:10px 12px; border:1px solid #c7dfe2; border-radius:9px; color:#08656d; background:#f3fafa; font-size:12px; font-weight:850; text-align:center; text-decoration:none; }

  .search-card { padding:0; overflow:hidden; border-radius:15px; }
  .mobile-search-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:50px; padding:12px 15px; border:0; color:#17364b; background:rgba(255,255,255,.97); font-size:15px; font-weight:900; text-align:left; }
  .mobile-search-toggle span:last-child { color:#557487; font-size:17px; line-height:1; }
  .search-card-body { display:none; max-height:calc(100dvh - 132px); padding:0 15px 15px; overflow:auto; overscroll-behavior:contain; background:rgba(255,255,255,.97); }
  .search-card.search-open .search-card-body { display:block; }
  .search-card.search-open .mobile-search-toggle { border-bottom:1px solid #dce8eb; }
  .search-card .search-title { display:none; }
  .search-card.search-open { box-shadow:0 14px 34px rgba(20,51,68,.2); }

  .map-idle-guide { top:43%; width:calc(100% - 44px); padding:15px 16px; }
  .map-idle-guide strong { font-size:15px; }
  .map-idle-guide span { font-size:12px; }
  .map-idle-guide button { min-height:38px; }
}

/* ===== V15: tài khoản thành viên & phân quyền dữ liệu ===== */
.account-button {
  min-height: 38px;
  border: 1px solid rgba(11, 93, 82, .22);
  border-radius: 999px;
  padding: 0 15px;
  background: #fff;
  color: #0b5d52;
  font: inherit;
  font-size: .84rem;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 5px 18px rgba(15, 23, 42, .07);
}
.account-button:hover { background: #effaf7; border-color: rgba(11, 93, 82, .42); }
.seo-hub-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.account-button.authenticated { background: #0b5d52; color: #fff; border-color: #0b5d52; }
.account-modal[hidden] { display: none !important; }
.account-modal {
  position: fixed;
  inset: 0;
  z-index: 6000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(15, 23, 42, .58);
  backdrop-filter: blur(8px);
}
body.account-modal-open { overflow: hidden; }
.account-dialog {
  position: relative;
  width: min(560px, 100%);
  max-height: min(820px, calc(100vh - 34px));
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 24px;
  padding: 25px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(15, 23, 42, .3);
}
.account-close {
  position: absolute;
  top: 13px;
  right: 13px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 50%;
  background: #edf2f7;
  color: #334155;
  font-size: 1.55rem;
  cursor: pointer;
}
.account-brand { display: flex; align-items: center; gap: 12px; padding-right: 45px; }
.account-brand .brand-mark { flex: 0 0 auto; }
.account-brand strong { display: block; color: #15362f; font-size: 1.12rem; }
.account-brand small { display: block; margin-top: 3px; color: #64748b; }
.account-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 22px 0 17px; padding: 5px; border-radius: 14px; background: #eef3f2; }
.account-tabs button { min-height: 42px; border: 0; border-radius: 10px; background: transparent; color: #64748b; font: inherit; font-weight: 800; cursor: pointer; }
.account-tabs button.active { background: #fff; color: #0b5d52; box-shadow: 0 4px 13px rgba(15, 23, 42, .09); }
.account-panel[hidden] { display: none !important; }
.account-form { display: grid; gap: 13px; }
.account-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.account-form label { display: grid; gap: 7px; color: #334155; font-size: .84rem; font-weight: 750; }
.account-form label small { font-weight: 500; color: #7a8796; }
.account-form input,
.account-form select { width: 100%; min-height: 46px; border: 1px solid #d5dfdc; border-radius: 11px; padding: 0 12px; background: #fff; color: #172b26; font: inherit; outline: none; }
.account-form input:focus,
.account-form select:focus { border-color: #0b806f; box-shadow: 0 0 0 3px rgba(11, 128, 111, .12); }
.account-form > button,
.account-member-panel > button,
.info-access-cta button,
.parcel-account-gate button { min-height: 47px; border: 0; border-radius: 11px; padding: 0 17px; background: #0b806f; color: #fff; font: inherit; font-weight: 850; cursor: pointer; }
.account-form > button:hover,
.info-access-cta button:hover,
.parcel-account-gate button:hover { background: #086759; }
.account-form button:disabled,
.account-member-panel button:disabled { opacity: .65; cursor: wait; }
.account-note { margin: 13px 0 0; color: #68788a; font-size: .79rem; line-height: 1.55; }
.account-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.account-message { min-height: 21px; margin: 13px 0 0; color: #526171; font-size: .84rem; font-weight: 700; text-align: center; }
.account-message[data-tone="error"] { color: #b42318; }
.account-message[data-tone="success"] { color: #087a5b; }
.account-member-panel { text-align: center; }
.account-avatar { display: grid; place-items: center; width: 76px; height: 76px; margin: 8px auto 13px; border-radius: 22px; background: linear-gradient(145deg, #0b806f, #17483f); color: #fff; font-weight: 900; letter-spacing: .08em; box-shadow: 0 15px 35px rgba(11, 128, 111, .22); }
.account-member-panel h2 { margin: 0; color: #15362f; }
.account-member-panel > p { color: #66778a; }
.account-benefits { display: grid; gap: 8px; margin: 18px 0; padding: 15px; border-radius: 14px; background: #f1faf7; color: #245d52; text-align: left; font-size: .86rem; font-weight: 700; }
.account-logout { width: 100%; background: #eaf0ef !important; color: #345047 !important; }
.info-access-cta { display: grid; gap: 7px; margin-top: 14px; padding: 14px; border: 1px solid #cfe5df; border-radius: 14px; background: linear-gradient(145deg, #f1fbf8, #fff); }
.info-access-cta[hidden] { display: none !important; }
.info-access-cta strong { color: #154c42; }
.info-access-cta span { color: #61736d; font-size: .82rem; line-height: 1.45; }
.info-access-cta button { min-height: 42px; font-size: .84rem; }
.parcel-account-gate { margin: 18px 0; padding: 20px; border: 1px solid #cae3dc; border-radius: 16px; background: #f2fbf8; }
.parcel-account-gate[hidden] { display: none !important; }
.parcel-account-gate strong { display: block; color: #154c42; font-size: 1.05rem; }
.parcel-account-gate p { color: #60726c; line-height: 1.55; }
.parcel-account-gate button { width: 100%; }

/* Quản lý tài khoản trong admin */
.user-manager-card { margin-top: 18px; }
.user-manager-summary { display: flex; flex-wrap: wrap; gap: 8px; }
.user-manager-summary span { min-width: 90px; padding: 10px 12px; border: 1px solid #dfe8e5; border-radius: 12px; background: #f8fbfa; text-align: center; }
.user-manager-summary strong, .user-manager-summary small { display: block; }
.user-manager-summary strong { color: #0b5d52; font-size: 1.15rem; }
.user-manager-summary small { margin-top: 2px; color: #718079; font-size: .7rem; }
.user-manager-toolbar { display: flex; gap: 10px; margin: 16px 0 12px; }
.user-manager-toolbar input { flex: 1; min-height: 42px; border: 1px solid #d6e0dd; border-radius: 10px; padding: 0 12px; font: inherit; }
.user-manager-toolbar button { min-height: 42px; border: 1px solid #cad8d4; border-radius: 10px; padding: 0 14px; background: #fff; color: #315248; font: inherit; font-weight: 800; cursor: pointer; }
.user-table-wrap { overflow: auto; border: 1px solid #e1e8e6; border-radius: 14px; }
.user-table { width: 100%; min-width: 920px; border-collapse: collapse; }
.user-table th, .user-table td { padding: 12px; border-bottom: 1px solid #edf1f0; text-align: left; vertical-align: middle; }
.user-table th { background: #f5f8f7; color: #54665f; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.user-table td { color: #33463f; font-size: .82rem; }
.user-table td strong, .user-table td small { display: block; }
.user-table td small { margin-top: 3px; color: #7a8782; }
.user-table select, .user-table input[type="date"] { min-height: 38px; border: 1px solid #d5dfdc; border-radius: 9px; padding: 0 8px; background: #fff; font: inherit; }
.user-table .user-save { min-height: 38px; border: 0; border-radius: 9px; padding: 0 12px; background: #0b806f; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.user-manager-message { min-height: 22px; margin-top: 10px; }

@media (max-width: 760px) {
  .account-button { min-height: 36px; padding: 0 11px; font-size: .76rem; }
  .account-dialog { padding: 20px 16px; border-radius: 20px; max-height: calc(100vh - 20px); }
  .account-form-grid { grid-template-columns: 1fr; }
  .account-brand strong { font-size: 1rem; }
  .top-actions .data-badge { display: none; }
  .user-manager-toolbar { flex-direction: column; }
}
@media (max-width: 760px) {
  .topbar .top-actions { display: flex; margin-left: 0; }
  .topbar .top-actions .admin-link,
  .topbar .top-actions .parcel-back-link { display: none; }
  .support-header { margin-left: auto; }
}

/* ===== V15.1: chống chồng lấn khu hỗ trợ và nút tài khoản ===== */
@media (min-width: 981px) {
  .topbar {
    display: grid;
    grid-template-columns: minmax(225px, 1fr) minmax(320px, 540px) minmax(260px, 1fr);
    align-items: center;
    gap: 18px;
  }
  .topbar .brand {
    min-width: 0;
    justify-self: start;
  }
  .topbar .support-header {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
    min-width: 0;
    margin: 0;
    transform: none;
    justify-self: center;
  }
  .topbar .support-toggle {
    width: 100%;
    min-width: 0;
    max-width: 540px;
  }
  .topbar .support-popover {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
  .topbar .top-actions {
    position: relative;
    z-index: 7;
    min-width: 0;
    margin: 0;
    justify-self: end;
  }
}

/* Ưu tiên nút tài khoản ở các màn hình laptop nhỏ. */
@media (min-width: 981px) and (max-width: 1550px) {
  .topbar .data-badge { display: none; }
}

@media (min-width: 981px) and (max-width: 1240px) {
  .topbar {
    grid-template-columns: auto minmax(260px, 1fr) auto;
    gap: 10px;
    padding-inline: 18px;
  }
  .topbar .support-toggle {
    max-width: 100%;
    padding: 7px 11px;
  }
  .topbar .support-toggle span { font-size: 9px; }
  .topbar .support-toggle strong { font-size: 11px; }
  .topbar .account-button { padding-inline: 12px; }
}

/* Trên điện thoại dùng nhãn ngắn để ba cụm đầu trang luôn vừa màn hình. */
@media (max-width: 760px) {
  .topbar #account-button {
    min-width: 68px;
    padding-inline: 8px;
    overflow: hidden;
    font-size: 0;
  }
  .topbar #account-button::after {
    content: 'Tài khoản';
    font-size: .72rem;
    font-weight: 850;
  }
}

/* ===== V16: quyền lợi theo gói, hạn mức, lưu thửa và báo cáo ===== */
.account-dialog { width: min(720px, 100%); }
.account-member-panel { text-align: left; }
.account-member-heading { display:flex; align-items:center; gap:16px; margin:4px 0 16px; }
.account-member-heading .account-avatar { flex:0 0 auto; width:64px; height:64px; margin:0; border-radius:18px; }
.account-member-heading h2 { margin:0 0 4px; }
.account-member-heading p { margin:0; color:#66778a; font-size:.86rem; }
.account-plan-expiry { display:block; margin-top:4px; color:#718079; font-size:.75rem; }
.account-plan-expiry[data-tone="warning"] { color:#b45309; font-weight:750; }
.account-usage { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:0 0 16px; }
.account-usage > span { display:grid; gap:3px; padding:12px; border:1px solid #dce8e4; border-radius:13px; background:#f8fbfa; }
.account-usage strong { color:#0b675a; font-size:1rem; }
.account-usage small { color:#6c7d77; font-size:.7rem; line-height:1.3; }
.account-member-section { margin-top:14px; }
.account-member-section > h3 { margin:0 0 8px; color:#27483f; font-size:.84rem; text-transform:uppercase; letter-spacing:.045em; }
.account-benefits { margin:0; }
.account-list { display:grid; gap:7px; max-height:190px; overflow:auto; padding-right:3px; }
.account-list-row { display:flex; align-items:center; gap:9px; padding:9px 10px; border:1px solid #e1e9e6; border-radius:11px; background:#fff; }
.account-list-row > a { min-width:0; flex:1; display:grid; gap:2px; color:#244a40; text-decoration:none; }
.account-list-row > a:hover strong { color:#0b806f; }
.account-list-row strong,.account-list-row small { display:block; }
.account-list-row strong { font-size:.82rem; }
.account-list-row small { color:#7b8884; font-size:.7rem; }
.account-list-row button { flex:0 0 auto; min-height:32px; border:1px solid #d2ded9; border-radius:8px; padding:0 9px; background:#f3f7f6; color:#4d625b; font:inherit; font-size:.72rem; font-weight:750; cursor:pointer; }
.account-list-row.compact { padding-block:7px; }
.account-empty { margin:0; padding:11px; border:1px dashed #d7e2df; border-radius:10px; color:#7a8883; font-size:.78rem; text-align:center; }
.account-logout { margin-top:18px; }

.parcel-detail-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:14px 0 3px; }
.parcel-detail-actions button { min-height:42px; border:1px solid #c9dcd7; border-radius:11px; padding:0 12px; background:#fff; color:#24584e; font:inherit; font-size:.82rem; font-weight:850; cursor:pointer; }
.parcel-detail-actions button:hover:not(:disabled) { border-color:#0b806f; background:#f1faf7; }
.parcel-detail-actions button.active { border-color:#0b806f; background:#0b806f; color:#fff; }
.parcel-detail-actions button.locked { color:#8a6a20; background:#fffaf0; border-color:#ead8ac; }
.parcel-detail-actions button:disabled { opacity:.62; cursor:not-allowed; }
.parcel-detail-actions small { grid-column:1/-1; min-height:18px; color:#6d7f79; font-size:.72rem; }
.parcel-detail-actions small[data-tone="error"] { color:#b42318; }
.parcel-detail-actions small[data-tone="warning"] { color:#b45309; }
.parcel-detail-actions small[data-tone="success"] { color:#087a5b; }

@media (max-width:760px) {
  .account-member-heading { align-items:flex-start; }
  .account-member-heading .account-avatar { width:54px; height:54px; border-radius:15px; }
  .account-usage { grid-template-columns:1fr; }
  .account-list { max-height:155px; }
  .parcel-detail-actions { grid-template-columns:1fr; }
  .parcel-detail-actions small { grid-column:1; }
}

/* ===== V16.1: ảnh bản đồ trong báo cáo PDF ===== */
.parcel-report-cover { display:none; }
.parcel-report-map-figure img { display:block; width:100%; }

@media print {
  @page { size:A4; margin:11mm; }
  * { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  body.parcel-detail-body { background:#fff !important; color:#111; }
  .parcel-detail-body .topbar,
  .parcel-detail-body .parcel-detail-map-wrap,
  .parcel-detail-body .parcel-detail-return,
  .parcel-detail-body .parcel-detail-actions,
  .parcel-detail-body .account-modal,
  .parcel-detail-body .parcel-account-gate { display:none !important; }
  .parcel-detail-shell { display:block !important; min-height:0 !important; }
  .parcel-detail-panel { width:100% !important; max-width:none !important; overflow:visible !important; padding:0 !important; }
  .parcel-report-cover { display:none !important; }
  body.parcel-report-ready .parcel-report-cover { display:block !important; min-height:268mm; break-after:page; page-break-after:always; padding:0; color:#18342e; }
  .parcel-report-heading { display:flex; align-items:center; gap:13px; padding:0 0 11px; border-bottom:2px solid #0b806f; }
  .parcel-report-logo { display:grid; place-items:center; width:17mm; height:17mm; border-radius:5mm; background:#0b806f !important; color:#fff !important; font-size:17px; font-weight:950; letter-spacing:.04em; }
  .parcel-report-heading p { margin:0 0 2px; color:#0b806f; font-size:10px; font-weight:900; letter-spacing:.09em; }
  .parcel-report-heading h2 { margin:0; color:#18342e; font-size:23px; line-height:1.1; }
  .parcel-report-title-block { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin:13px 0 10px; }
  .parcel-report-title-block strong { color:#102f28; font-size:19px; }
  .parcel-report-title-block span { color:#61726d; font-size:9px; text-align:right; }
  .parcel-report-map-figure { margin:0; break-inside:avoid; }
  .parcel-report-map-figure img { width:100%; max-height:177mm; border:1px solid #a9bbb5; border-radius:4mm; object-fit:contain; background:#e8efea !important; }
  .parcel-report-map-figure figcaption { margin-top:5px; color:#5c6f69; font-size:9px; line-height:1.4; }
  .parcel-report-notice { margin-top:11px; padding:10px 12px; border:1px solid #c9d9d4; border-radius:3mm; background:#f1f7f5 !important; break-inside:avoid; }
  .parcel-report-notice strong { display:block; margin-bottom:2px; color:#0b675a; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
  .parcel-report-notice p { margin:0; color:#4e625c; font-size:9px; line-height:1.45; }
  .parcel-detail-panel > .eyebrow { margin-top:0; }
  .parcel-detail-panel h1 { font-size:24px; }
  .parcel-detail-section,.planning-result,.planning-breakdown-row { break-inside:avoid; box-shadow:none !important; }
  .planning-result-list { max-height:none !important; overflow:visible !important; }
  .planning-result { border-color:#bbb !important; background:#fff !important; }
  .planning-breakdown-row { background:#fff !important; border-color:#ccc !important; }
  .parcel-detail-panel::after { content:'Dữ liệu phục vụ mục đích tham khảo. Thông tin chính thức được xác định theo hồ sơ, bản vẽ và văn bản do cơ quan có thẩm quyền ban hành.'; display:block; margin-top:18px; padding-top:10px; border-top:1px solid #aaa; color:#555; font-size:10px; }
}

/* V16.3 — tự động thời hạn thành viên */
.user-manager-toolbar select {
  min-height: 42px;
  min-width: 210px;
  border: 1px solid #d6e0dd;
  border-radius: 10px;
  padding: 0 36px 0 12px;
  background: #fff;
  color: #315248;
  font: inherit;
  font-weight: 750;
}
.user-table { min-width: 1120px; }
.user-expiry-cell { min-width: 210px; }
.user-expiry-cell > select,
.user-expiry-cell > input { width: 100%; margin-bottom: 6px; }
.user-expiry-controls { display: flex; flex-wrap: wrap; gap: 5px; }
.user-expiry-controls button {
  min-height: 28px;
  border: 1px solid #cddbd7;
  border-radius: 7px;
  padding: 0 8px;
  background: #f8fbfa;
  color: #315248;
  font: inherit;
  font-size: .7rem;
  font-weight: 850;
  cursor: pointer;
}
.user-expiry-controls button:hover { border-color: #0b806f; color: #087263; }
.user-expiry-controls button:disabled { opacity: .4; cursor: not-allowed; }
.user-expiry-status,
.user-plan-note { margin-top: 7px !important; font-weight: 750; line-height: 1.35; }
.user-expiry-status[data-tone="success"] { color: #17734f; }
.user-expiry-status[data-tone="warning"] { color: #a15c00; }
.user-expiry-status[data-tone="error"],
.user-plan-note[data-tone="error"] { color: #b42318; }
.user-table input:disabled,
.user-table select:disabled { background: #f2f5f4; color: #84908c; }
@media (max-width: 760px) {
  .user-manager-toolbar select { width: 100%; min-width: 0; }
}

/* V17 — Bộ chuyển đổi DXF địa chính */
.cadastral-converter-card {
  border-color: rgba(15, 118, 110, 0.26);
  background: linear-gradient(180deg, rgba(240, 253, 250, 0.78), rgba(255, 255, 255, 0.98));
}
.success-pill {
  border-color: rgba(15, 118, 110, 0.24) !important;
  background: rgba(204, 251, 241, 0.72) !important;
  color: #0f766e !important;
}
.cadastral-fields-grid {
  display: grid;
  grid-template-columns: minmax(160px, .55fr) minmax(240px, 1.45fr);
  gap: 12px;
}
.cadastral-converter-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.cadastral-converter-actions button {
  min-height: 44px;
}
.cadastral-converter-report {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid rgba(15, 118, 110, 0.18);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}
.cadastral-report-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.cadastral-report-heading > div {
  display: grid;
  gap: 3px;
}
.cadastral-report-heading strong {
  font-size: 1rem;
  color: #0f172a;
}
.cadastral-report-heading span:not(.manager-status) {
  font-size: .83rem;
  color: #64748b;
}
.cadastral-report-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.cadastral-report-grid > div {
  display: grid;
  gap: 2px;
  min-height: 78px;
  padding: 12px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.cadastral-report-grid strong {
  font-size: 1.3rem;
  color: #0f766e;
}
.cadastral-report-grid span {
  font-size: .78rem;
  color: #64748b;
}
.cadastral-converter-report > p {
  margin: 14px 0 0;
  color: #475569;
  font-size: .86rem;
  line-height: 1.55;
}
.cadastral-converter-report code {
  padding: 2px 5px;
  border-radius: 6px;
  background: #f1f5f9;
  color: #334155;
}
@media (max-width: 820px) {
  .cadastral-fields-grid { grid-template-columns: 1fr; }
  .cadastral-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cadastral-converter-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .cadastral-converter-actions button:last-child { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .cadastral-report-heading { align-items: flex-start; flex-direction: column; }
  .cadastral-converter-actions { grid-template-columns: 1fr; }
  .cadastral-converter-actions button:last-child { grid-column: auto; }
}

/* V17.1 — biên tập thông tin thửa địa chính */
.cadastral-record-card{margin-top:24px}.cadastral-record-heading{align-items:flex-start}.cadastral-record-search-form{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(180px,.6fr) auto;gap:12px;align-items:end;margin-top:20px}.cadastral-record-search-form label,.cadastral-record-edit-form label{display:grid;gap:7px;font-weight:800;color:#24443d}.cadastral-record-search-form select,.cadastral-record-search-form input,.cadastral-record-edit-form select,.cadastral-record-edit-form input{width:100%;min-height:46px;border:1px solid #cbdeda;border-radius:12px;background:#fff;padding:10px 13px;font:inherit;color:#17332d}.cadastral-record-search-form button{min-height:46px}.cadastral-record-result{margin-top:18px;border:1px solid #d6e5e1;border-radius:16px;background:#f9fcfb;padding:18px}.cadastral-record-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.cadastral-record-summary>div{padding:13px 14px;border:1px solid #dce9e6;border-radius:13px;background:#fff}.cadastral-record-summary small,.cadastral-record-summary strong{display:block}.cadastral-record-summary small{font-size:12px;color:#667b75;margin-bottom:4px}.cadastral-record-summary strong{font-size:17px;color:#0b695f;overflow-wrap:anywhere}.cadastral-record-summary strong.is-manual{color:#8b5a00}.cadastral-record-owner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.cadastral-record-edit-form input[readonly]{background:#eef5f3;color:#63756f}.cadastral-record-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.danger-outline{border-color:#e6b5b0!important;color:#9f2f24!important;background:#fff!important}.cadastral-record-help{margin:12px 0 0;color:#617871;font-size:13px}.cadastral-record-history{margin-top:20px;padding-top:18px;border-top:1px solid #d9e7e3}.cadastral-record-history h3{margin:0 0 10px}.cadastral-record-history-list,.cadastral-record-history>div{display:grid;gap:9px}.cadastral-record-history article{padding:12px 14px;border:1px solid #dce8e5;border-radius:12px;background:#fff}.cadastral-record-history article>div{display:flex;justify-content:space-between;gap:12px}.cadastral-record-history article p{margin:6px 0}.cadastral-record-history article small{display:block;color:#667b75}.cadastral-record-history time{font-size:12px;color:#71847f}.form-message.success{color:#087a59}.form-message.error{color:#b42318}
@media(max-width:820px){.cadastral-record-search-form{grid-template-columns:1fr}.cadastral-record-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cadastral-record-owner-grid{grid-template-columns:1fr}}
@media(max-width:520px){.cadastral-record-summary{grid-template-columns:1fr}.cadastral-record-result{padding:14px}.cadastral-record-actions>*{width:100%}}

/* V18: bảng bật/tắt lớp trên trang kết quả thửa đất, tránh các lớp quy hoạch chồng màu. */
.parcel-layer-button { position:relative; }
.parcel-layer-button::before { content:'◫'; margin-right:5px; font-size:14px; line-height:1; }
.parcel-layer-panel { position:absolute; z-index:4; top:82px; right:18px; width:min(340px,calc(100% - 36px)); max-height:calc(100% - 108px); overflow:auto; overscroll-behavior:contain; border:1px solid rgba(202,220,224,.98); border-radius:16px; color:#173348; background:rgba(255,255,255,.975); box-shadow:0 14px 38px rgba(12,43,57,.24); scrollbar-color:#9bbbc0 transparent; scrollbar-width:thin; }
.parcel-layer-panel[hidden] { display:none; }
.parcel-layer-panel-heading { position:sticky; z-index:2; top:0; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:15px 16px 13px; border-bottom:1px solid #dce8eb; background:rgba(255,255,255,.985); }
.parcel-layer-panel-heading > div { display:grid; min-width:0; gap:3px; }
.parcel-layer-panel-heading strong { color:#18354c; font-size:15px; }
.parcel-layer-panel-heading small { color:#5f7888; font-size:11px; line-height:1.35; }
.parcel-layer-panel-heading > button { flex:0 0 auto; width:31px; height:31px; padding:0; border:0; border-radius:9px; color:#607987; background:#edf4f5; font-size:22px; line-height:1; }
.parcel-layer-group { padding:14px 16px 16px; border-bottom:1px solid #e0eaed; }
.parcel-layer-group:last-child { border-bottom:0; }
.parcel-layer-group > p { margin:8px 0 12px; color:#647d8c; font-size:11px; line-height:1.45; }
.parcel-layer-group-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.parcel-layer-group-heading > strong,.parcel-reference-layers > strong { color:#29485a; font-size:12px; font-weight:900; letter-spacing:.025em; text-transform:uppercase; }
.parcel-layer-group-heading > button { padding:6px 8px; border:1px solid #bdd7d8; border-radius:8px; color:#087067; background:#f2faf8; font-size:10px; font-weight:850; }
.parcel-layer-row { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; gap:9px; min-height:47px; padding:7px 4px; border-bottom:1px solid #edf2f4; cursor:pointer; }
.parcel-layer-row:last-of-type { border-bottom:0; }
.parcel-layer-row input { width:16px; height:16px; margin:0; accent-color:var(--teal); }
.parcel-layer-row > span { display:grid; min-width:0; gap:2px; }
.parcel-layer-row > span strong { color:#203d50; font-size:12px; line-height:1.25; }
.parcel-layer-row > span small { color:#728896; font-size:10px; line-height:1.3; }
.parcel-layer-row:has(input:checked) > span strong { color:#087067; }
.parcel-layer-row:has(input:disabled) { cursor:not-allowed; opacity:.58; }
.parcel-layer-row-locked { opacity:.78 !important; cursor:default !important; }
.parcel-opacity-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:13px; color:#355368; font-size:11px; font-weight:850; }
.parcel-opacity-row output { color:#087067; font-variant-numeric:tabular-nums; }
.parcel-planning-opacity { width:100%; margin:9px 0 0; accent-color:var(--teal); }
.parcel-reference-layers { padding-top:13px; }
.parcel-reference-layers > strong { display:block; margin-bottom:5px; }

@media (max-width:980px) {
  .parcel-layer-panel { top:auto; right:14px; bottom:76px; max-height:calc(100% - 110px); }
}
@media (max-width:620px) {
  .parcel-map-controls { max-width:calc(100% - 28px); }
  .parcel-map-controls .parcel-layer-button { order:4; }
  .parcel-layer-panel { right:14px; bottom:72px; left:14px; width:auto; max-height:calc(100% - 100px); }
  .parcel-layer-panel-heading { padding:13px 14px 11px; }
  .parcel-layer-group { padding:12px 14px 14px; }
  .parcel-layer-row { min-height:43px; }
}

/* NHPQ V34.6 - lớp ranh/hướng tuyến gốc và nút PDF */
.pdf-control-button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; white-space:nowrap; }
.pdf-control-button[hidden] { display:none !important; }
.reference-overlay-row { margin-top:5px; padding-top:5px; border-top:1px solid #e3ecef; }
.reference-overlay-row span { color:#385469; font-weight:750; }
.reference-overlay-row:has(input:checked) span { color:#087067; }
.reference-overlay-row:has(input:disabled) { opacity:.6; }
@media (max-width:760px) { .controls-card { flex-wrap:wrap; max-width:calc(100% - 24px); } .pdf-control-button { flex:0 0 auto; } }


/* NHPQ V34.7 - định vị GPS thực địa */
.gps-control-button { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.gps-control-button[aria-pressed="true"] { color:#fff; background:#087e70; border-color:#087e70; }
.gps-control-button.gps-paused { color:#775600; background:#fff4c9; border-color:#e5c760; }
.gps-control-icon { font-size:17px; line-height:1; }
.gps-status-card { position:absolute; z-index:5; right:22px; bottom:152px; display:grid; gap:3px; width:min(300px,calc(100% - 44px)); padding:11px 13px; border:1px solid rgba(199,220,223,.98); border-radius:13px; color:#24475a; background:rgba(255,255,255,.96); box-shadow:0 8px 25px rgba(13,42,55,.18); backdrop-filter:blur(7px); }
.gps-status-card[hidden] { display:none; }
.gps-status-card strong { color:#0a655d; font-size:13px; }
.gps-status-card span { font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; }
.gps-status-card small { color:#6a7f8d; font-size:10px; line-height:1.35; }
.gps-status-card[data-tone="warning"] strong { color:#8a5b00; }
.gps-status-card[data-tone="error"] strong { color:#b42318; }
.gps-parcel-result { display:grid; gap:2px; margin-top:5px; padding:9px 10px; border:1px solid #d8e7e3; border-radius:10px; background:#f5faf8; }
.gps-parcel-result[hidden] { display:none; }
.gps-parcel-result strong { color:#174b45; font-size:12px; }
.gps-parcel-result span { color:#334f5e; font-size:11px; line-height:1.35; }
.gps-parcel-result small { color:#6a7f8d; font-size:10px; line-height:1.35; }
.gps-parcel-result[data-tone="warning"] { border-color:#f0d79b; background:#fff9e9; }
.gps-parcel-result[data-tone="warning"] strong { color:#8a5b00; }
.gps-parcel-result[data-tone="error"] { border-color:#f1c5c0; background:#fff4f2; }
.gps-parcel-result[data-tone="error"] strong { color:#b42318; }
.gps-parcel-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:5px; }
.gps-parcel-actions button { min-height:34px; border:0; border-radius:9px; padding:7px 10px; color:#fff; background:#0b806f; font:800 11px/1.2 inherit; cursor:pointer; }
.gps-parcel-actions button:last-child { background:#d97706; }
.gps-parcel-actions button[hidden] { display:none; }
.gps-parcel-actions button:disabled { cursor:not-allowed; opacity:.48; }
.nhpq-gps-marker { position:relative; width:22px; height:22px; border:3px solid #fff; border-radius:50%; background:#12a77f; box-shadow:0 2px 8px rgba(0,0,0,.42),0 0 0 2px rgba(6,119,129,.65); }
.nhpq-gps-marker::after { content:''; position:absolute; inset:-8px; border:2px solid rgba(18,167,127,.42); border-radius:50%; animation:nhpq-gps-pulse 1.8s ease-out infinite; }
.nhpq-gps-marker[data-tone="warning"] { background:#f0a51b; box-shadow:0 2px 8px rgba(0,0,0,.42),0 0 0 2px rgba(211,139,13,.65); }
.nhpq-gps-marker[data-tone="warning"]::after { border-color:rgba(240,165,27,.42); }
.nhpq-gps-marker[data-tone="error"] { background:#df3d3d; box-shadow:0 2px 8px rgba(0,0,0,.42),0 0 0 2px rgba(190,39,39,.65); }
.nhpq-gps-marker[data-tone="error"]::after { border-color:rgba(223,61,61,.42); }
@keyframes nhpq-gps-pulse { 0% { transform:scale(.72); opacity:.9; } 100% { transform:scale(1.65); opacity:0; } }
@media (prefers-reduced-motion:reduce) { .nhpq-gps-marker::after { animation:none; } }
@media (max-width:760px) {
  .gps-control-button #gps-button-label { display:none; }
  .gps-control-button { min-width:38px; justify-content:center; }
  .gps-status-card { right:12px; bottom:112px; width:min(285px,calc(100% - 24px)); }
}

/* ===== V34.9: hồ sơ pháp lý theo từng bản đồ / phân khu ===== */
.documents-card { max-height:min(43dvh,430px); }
.document-body { max-height:min(36dvh,360px); padding:0 12px 14px 14px; white-space:normal; overscroll-behavior:contain; }
.document-placeholder,
.document-list-intro { margin:0; color:#627786; line-height:1.5; }
.document-list-intro { margin-bottom:10px; padding:10px 11px; border:1px solid #d7e7e8; border-radius:11px; background:#f4faf9; font-size:11px; }
.document-entry { border:1px solid #dce7e8; border-radius:12px; background:rgba(255,255,255,.9); overflow:hidden; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.document-entry + .document-entry { margin-top:9px; padding-top:0; border-top:1px solid #dce7e8; }
.document-entry:not(.document-accordion) { padding:12px; }
.document-entry.document-focused { border-color:#0b8b85; background:#f2fbfa; box-shadow:0 0 0 2px rgba(11,139,133,.12); }
.document-entry-empty { border-style:dashed; background:#fbfcfc; }
.document-accordion > summary { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:54px; padding:10px 11px; cursor:pointer; list-style:none; user-select:none; }
.document-accordion > summary::-webkit-details-marker { display:none; }
.document-accordion > summary::after { content:'›'; flex:0 0 auto; color:#55727d; font-size:20px; font-weight:900; transform:rotate(90deg); transition:transform .18s ease; }
.document-accordion[open] > summary::after { transform:rotate(-90deg); }
.document-summary-text { min-width:0; flex:1; display:grid; gap:3px; }
.document-summary-text strong { overflow:hidden; color:#26495a; font-size:11.5px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.document-summary-text small { color:#738995; font-size:9.5px; font-weight:750; }
.document-file-count { display:grid; place-items:center; flex:0 0 auto; min-width:25px; height:25px; padding:0 6px; border-radius:999px; background:#e7f5f3; color:#08776f; font-size:10px; font-weight:900; }
.document-entry-content { padding:0; }
.document-accordion .document-entry-content { padding:11px 12px 13px; border-top:1px solid #e4ecee; }
.document-entry-content h3 { margin:0; color:#274459; font-size:12px; line-height:1.4; }
.document-entry-content > p:not(.document-meta) { margin:7px 0 0; color:#415b6d; white-space:pre-wrap; }
.document-entry .document-meta { margin:4px 0 0; color:#6b8392; font-size:9.5px; font-weight:850; letter-spacing:.025em; text-transform:uppercase; }
.document-links { display:grid; gap:7px; margin-top:10px; }
.document-link { display:flex; align-items:center; gap:7px; margin:0; padding:9px 10px; border:1px solid #cfe1e1; border-radius:9px; background:#f4faf9; color:#08776f; font-size:10.5px; font-weight:850; line-height:1.35; text-decoration:none; overflow-wrap:anywhere; }
.document-link::before { content:'PDF'; display:grid; place-items:center; flex:0 0 auto; width:28px; height:20px; border-radius:5px; background:#0b8079; color:#fff; font-size:8px; font-weight:950; letter-spacing:.04em; }
.document-link:hover { border-color:#0b8b85; background:#eaf8f6; }
.document-link-decision::before { background:#a33a2b; }
.document-link-map::before { background:#176e95; }

@media (max-width:760px) {
  .documents-card { max-height:210px; }
  .document-body { max-height:155px; }
  .left-map-stack .documents-card.mobile-open .document-body { max-height:none; overflow:visible; padding:0 14px 20px; }
  .left-map-stack .documents-card.mobile-open .document-summary-text strong { white-space:normal; }
}

/* V34.9 — quản trị hai tệp PDF riêng cho từng bản đồ */
.manager-legal-files { display:grid; gap:11px; padding:14px; border:1px solid #dce7e4; border-radius:14px; background:#f8fbfa; }
.manager-legal-files-heading { display:grid; gap:3px; }
.manager-legal-files-heading strong { color:#23483f; font-size:.9rem; }
.manager-legal-files-heading small { color:#71817c; font-size:.75rem; line-height:1.4; }
.manager-legal-file-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.manager-legal-file-grid .file-drop { min-height:112px; padding:13px; }
.manager-legal-remove-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.manager-legal-remove-grid label { display:flex; align-items:center; gap:7px; color:#6c4640; font-size:.75rem; font-weight:750; }
.manager-legal-remove-grid input { accent-color:#a33a2b; }
@media (max-width:760px) {
  .manager-legal-file-grid,
  .manager-legal-remove-grid { grid-template-columns:1fr; }
}

/* V37 - bấm trực tiếp vào thửa và mở phân tích quy hoạch đầy đủ */
.info-parcel-actions { margin-top:16px; padding-top:14px; border-top:1px solid #dce8ea; }
.info-parcel-actions button { width:100%; min-height:42px; border:0; border-radius:11px; background:var(--teal); color:#fff; font-weight:850; cursor:pointer; box-shadow:0 8px 18px rgba(13,107,115,.18); }
.info-parcel-actions button:hover { filter:brightness(.96); }
.info-details dd { white-space:pre-line; }

/* V37.1 — thẻ xem nhanh khi bấm trực tiếp vào thửa */
.info-panel.quick-parcel {
  width:min(390px,calc(100% - 48px));
}
.info-panel.quick-parcel .info-subtitle {
  margin-bottom:14px;
}
.info-panel.quick-parcel .info-details {
  grid-template-columns:126px minmax(0,1fr);
  gap:11px 13px;
  padding:13px 14px;
  border:1px solid #dce9e7;
  border-radius:14px;
  background:#f7fbfa;
}
.info-panel.quick-parcel .info-details dt {
  color:#5a7180;
  font-weight:750;
}
.info-panel.quick-parcel .info-details dd {
  color:#17342e;
  font-size:14px;
  line-height:1.4;
}
.info-panel.quick-parcel .info-parcel-actions {
  margin-top:14px;
  padding-top:0;
  border-top:0;
}
.info-panel.quick-parcel .info-parcel-actions button {
  min-height:46px;
  font-size:14px;
}
@media (max-width:760px) {
  .info-panel.quick-parcel {
    width:calc(100% - 24px);
    max-height:min(58dvh,520px);
  }
  .info-panel.quick-parcel .info-details {
    grid-template-columns:112px minmax(0,1fr);
  }
}

/* NHPQ V38.1 - tra cứu tọa độ và liên kết Google Maps */
.search-mode-tabs { display:grid; grid-template-columns:.82fr 1.18fr; gap:6px; margin:-3px 0 13px; padding:4px; border:1px solid #d7e4e7; border-radius:12px; background:#eff5f6; }
.search-mode-tab { min-height:38px; padding:8px 10px; border:0; border-radius:9px; color:#526d7b; background:transparent; font-size:12px; font-weight:850; line-height:1.2; }
.search-mode-tab.active { color:#fff; background:#087e70; box-shadow:0 3px 9px rgba(8,126,112,.18); }
.search-mode-panel[hidden] { display:none; }
.coordinate-input-label { display:grid !important; gap:7px; margin-bottom:10px !important; }
.coordinate-input-label input { width:100%; min-height:46px; padding:11px 12px; border:1px solid #cad7de; border-radius:10px; color:var(--ink); background:#fff; outline-color:var(--teal); font-size:13px; font-weight:600; }
.coordinate-lookup-button { width:100%; }
.parcel-lookup-message[data-tone="success"] { color:#087a59; }
.parcel-lookup-message[data-tone="warning"] { color:#8a5b00; }
.parcel-lookup-message[data-tone="error"] { color:#b42318; }
.coordinate-lookup-result { display:grid; gap:3px; margin-top:10px; padding:11px 12px; border:1px solid #d5e5e1; border-radius:11px; background:#f3faf7; }
.coordinate-lookup-result[hidden] { display:none; }
.coordinate-lookup-result strong { color:#135f55; font-size:13px; line-height:1.35; }
.coordinate-lookup-result span { color:#334f5e; font-size:11px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.4; }
.coordinate-lookup-result small { color:#667e89; font-size:10px; line-height:1.4; }
.coordinate-lookup-result[data-tone="warning"] { border-color:#eed596; background:#fff9e9; }
.coordinate-lookup-result[data-tone="warning"] strong { color:#8a5b00; }
.coordinate-lookup-result[data-tone="error"] { border-color:#efc3be; background:#fff4f2; }
.coordinate-lookup-result[data-tone="error"] strong { color:#b42318; }
.nhpq-coordinate-marker { position:relative; width:28px; height:28px; border:3px solid #fff; border-radius:50%; background:#d97706; box-shadow:0 3px 12px rgba(0,0,0,.45),0 0 0 3px rgba(217,119,6,.26); }
.nhpq-coordinate-marker::before,.nhpq-coordinate-marker::after { content:''; position:absolute; left:50%; top:50%; background:#fff; transform:translate(-50%,-50%); border-radius:2px; }
.nhpq-coordinate-marker::before { width:14px; height:3px; }
.nhpq-coordinate-marker::after { width:3px; height:14px; }
@media(max-width:760px){
  .search-mode-tabs { position:sticky; z-index:2; top:-16px; margin:-2px -4px 12px; background:#eff5f6; }
  .search-mode-tab { font-size:11px; }
  .coordinate-input-label input { font-size:12px; }
}

/* NHPQ V38.2 - sắp xếp tờ địa chính và ẩn lối tắt quản trị */
.admin-link,
.support-admin-link {
  display: none !important;
}

.sheet-range-label {
  margin: 5px -7px 2px;
  padding: 7px 10px 5px;
  border-top: 1px solid #e2ecee;
  color: #517080;
  background: #f5f9fa;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.sheet-range-label:first-child {
  margin-top: 0;
  border-top: 0;
}

.sheet-group-items .sheet-row span {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sheet-group > summary small {
  white-space: nowrap;
}

/* ===== V38.8: nhãn gói thành viên hiển thị ngay trên thanh đầu trang ===== */
.account-button.authenticated {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.account-button-name {
  display: inline-block;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}
.account-plan-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 0 8px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: .66rem;
  font-weight: 950;
  letter-spacing: .035em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}
.account-plan-badge[data-plan="pro"] {
  border-color: #c8ede5;
  background: #e3f8f3;
  color: #075f53;
}
.account-plan-badge[data-plan="business"] {
  border-color: #ffe59b;
  background: #f7d66d;
  color: #604900;
}
@media (max-width: 760px) {
  .topbar #account-button.authenticated {
    min-width: 0;
    max-width: 116px;
    padding-inline: 7px;
    overflow: visible;
    font-size: .72rem;
  }
  .topbar #account-button.authenticated::after { content: none; }
  .topbar #account-button.authenticated .account-button-name { display: none; }
  .topbar #account-button.authenticated .account-plan-badge {
    min-height: 21px;
    max-width: 100%;
    padding-inline: 7px;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .61rem;
  }
}


/* NHPQ V38.8.1 — Khôi phục nút quên mật khẩu trên trang chính */
.account-text-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: #0f7c78;
  padding: 9px 2px 4px;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}
.account-text-button:hover { color: #075f53; text-decoration: underline; }
.account-text-button:focus-visible { outline: 3px solid rgba(15,124,120,.24); outline-offset: 3px; border-radius: 7px; }
.account-reset-heading h3 { margin: 7px 0 6px; font-size: 21px; }
.account-reset-heading p { margin: 0 0 15px; color: #657a89; line-height: 1.5; }
