:root{
  --nav:#073e69;--nav2:#0b588f;--blue:#0879d1;--blue2:#e9f4ff;--ink:#15324b;--muted:#6b7f91;
  --line:#d9e3ec;--bg:#f3f6fa;--white:#fff;--green:#0b8a55;--green-bg:#e9f8f1;--red:#c93636;--red-bg:#fff0f0;
  --orange:#c87500;--orange-bg:#fff7e8;--purple:#7c3aed;--shadow:0 10px 28px rgba(14,48,77,.12)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.subtle{color:var(--muted);font-size:12px}.muted{color:var(--muted)}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#063b65 0%,#0b75b8 55%,#dff2ff 170%)}
.auth-card{width:min(430px,96vw);background:#fff;border-radius:16px;box-shadow:0 24px 70px #001e3866;padding:28px}.auth-brand{display:flex;gap:12px;align-items:center;margin-bottom:20px}.auth-brand strong{display:block;font-size:22px}.auth-brand small{display:block;color:var(--muted);margin-top:3px}.logo-mark{font-size:25px;color:#2a9be9}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:18px}.auth-tab{border:0;background:transparent;padding:10px;color:var(--muted);font-weight:700}.auth-tab.active{color:var(--blue);border-bottom:2px solid var(--blue)}
.auth-form{display:grid;gap:12px}.auth-form label{font-size:12px;font-weight:650;color:#496175}.auth-form input,.auth-form select{display:block;width:100%;padding:11px 12px;margin-top:5px;border:1px solid #cbd8e4;border-radius:8px;background:#fff}.hint{font-size:11px;color:var(--muted);line-height:1.45}.message{padding:10px 12px;border-radius:8px;margin-top:12px;background:var(--blue2);border:1px solid #b9dcf7}.message.error{background:var(--red-bg);border-color:#efbbbb;color:#8d2525}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:linear-gradient(180deg,#063d68,#052f52);color:#dceeff;display:flex;flex-direction:column;z-index:30}.brand{height:72px;padding:16px 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #ffffff1d}.brand strong{font-size:18px;color:white}.brand small{display:block;font-size:11px;color:#a9cde8;margin-top:2px}
.sidebar nav{padding:10px 9px;overflow:auto}.sidebar nav button{width:100%;border:0;background:transparent;color:#d8eafa;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:8px;text-align:left;font-size:13px;margin:1px 0}.sidebar nav button span{display:inline-grid;width:20px;place-items:center;font-size:16px}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff18;color:white}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff1f;padding:13px}.sidebar-foot #who{font-size:12px;line-height:1.4;margin-bottom:8px}.main{margin-left:242px;min-height:100vh}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);padding:0 22px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.breadcrumb{font-weight:800}.top-actions{display:flex;align-items:center;gap:8px}.searchbox{width:320px;border:1px solid #cbd8e4;border-radius:8px;display:flex;align-items:center;gap:7px;padding:0 10px;background:#f9fbfd}.searchbox input{width:100%;border:0;outline:0;background:transparent;padding:9px 0}.content{padding:18px 22px 30px}
.btn{border:1px solid #c9d6e3;background:#fff;color:#294960;border-radius:8px;padding:8px 12px;font-weight:650;font-size:12px}.btn:hover{background:#f4f8fc}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.danger{background:#fff1f1;border-color:#efc2c2;color:#ad2828}.btn.success{background:#07834f;border-color:#07834f;color:#fff}.btn.ghost{background:transparent}.btn.dark{border-color:#ffffff35;color:white}.btn.wide{width:100%;padding:11px}.btn.small{padding:5px 8px;font-size:11px}.btn:disabled{opacity:.55;cursor:not-allowed}
.filters{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.filter-check{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #d7e2ec;border-radius:7px;background:#f8fbfd;font-size:12px;font-weight:650;color:#40566b}.filter-check input{accent-color:var(--blue)}.filter label{display:block;font-size:11px;color:var(--muted);font-weight:700;margin-bottom:4px}.filter select,.filter input{min-width:160px;padding:8px;border:1px solid #cbd8e4;border-radius:7px;background:white}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px;position:relative;overflow:hidden}.kpi .label{font-size:12px;color:var(--muted);font-weight:650}.kpi .value{font-size:25px;font-weight:850;margin-top:5px;letter-spacing:-.4px}.kpi .unit{font-size:11px;color:var(--muted);margin-left:3px}.kpi.green .value{color:var(--green)}.kpi.red .value{color:var(--red)}.kpi.blue .value{color:var(--blue)}.kpi.orange .value{color:var(--orange)}
.grid{display:grid;gap:14px}.grid.two{grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr)}.grid.equal{grid-template-columns:1fr 1fr}.mt{margin-top:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{padding:13px 15px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head h3{margin:0;font-size:14px}.panel-body{padding:14px}.panel-note{font-size:11px;color:var(--muted);line-height:1.45;margin-top:10px}
.table-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.table-tools input,.table-tools select{padding:7px 9px;border:1px solid #cbd8e4;border-radius:7px}.tablewrap{overflow:auto;max-height:68vh}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th{position:sticky;top:0;background:#f2f6fa;color:#40586e;font-size:11px;text-align:left;padding:9px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:2}.data-table td{padding:9px;border-bottom:1px solid #edf2f6;vertical-align:top;white-space:nowrap}.data-table tr:hover td{background:#fafcfe}.data-table td.wrap{white-space:normal;min-width:220px}.actions-cell{display:flex;gap:4px}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:999px;background:#eaf3fb;color:#27608b;font-size:10px;font-weight:750}.badge.green{background:var(--green-bg);color:var(--green)}.badge.red{background:var(--red-bg);color:var(--red)}.badge.orange{background:var(--orange-bg);color:var(--orange)}
.map{height:430px;min-height:300px;background:#e9eef3}.map.large{height:calc(100vh - 175px);min-height:560px}.map-legend{background:#fff;padding:8px 10px;border-radius:7px;box-shadow:0 1px 6px #0003;font-size:11px;line-height:1.6}.legend-dot{width:9px;height:9px;display:inline-block;border-radius:50%;margin-right:6px}.dot-source{background:#0b8a55}.dot-potential{background:#7c3aed}.dot-transport{background:#0879d1}.dot-shortage{background:#d53b3b}
.bar-chart{display:grid;gap:9px}.bar-row{display:grid;grid-template-columns:54px 1fr 90px;gap:8px;align-items:center;font-size:11px}.bar-track{height:18px;background:#eef3f7;border-radius:4px;overflow:hidden;display:flex}.bar-supply{height:100%;background:#2a8fd4}.bar-demand{height:100%;background:#e65b5b}.bar-labels{display:flex;gap:10px;font-size:10px;color:var(--muted);margin-bottom:8px}.swatch{width:9px;height:9px;display:inline-block;border-radius:2px;margin-right:3px}.swatch.supply{background:#2a8fd4}.swatch.demand{background:#e65b5b}
.balance-table .positive{color:var(--green);font-weight:750}.balance-table .negative{color:var(--red);font-weight:750}.alert{padding:11px 12px;border-radius:8px;border:1px solid #f0c7c7;background:#fff4f4;color:#9a2e2e;font-size:12px}.info{padding:11px 12px;border-radius:8px;border:1px solid #bbd9f0;background:#f0f8ff;color:#275f89;font-size:12px}.successbox{padding:11px 12px;border-radius:8px;border:1px solid #b9dfcc;background:#f0fbf6;color:#176c48;font-size:12px}
.modal-backdrop{position:fixed;inset:0;background:#001b325e;z-index:100;display:grid;place-items:center;padding:18px}.modal{width:min(1120px,97vw);max-height:94vh;background:#fff;border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.modal.small{width:min(560px,95vw)}.modal-head{padding:13px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;font-size:16px}.modal-tabs{display:flex;gap:0;overflow:auto;border-bottom:1px solid var(--line);background:#f8fafc}.modal-tabs button{border:0;border-right:1px solid var(--line);background:transparent;padding:10px 13px;color:#496175;font-size:11px;font-weight:750;white-space:nowrap}.modal-tabs button.active{background:#fff;color:var(--blue);box-shadow:inset 0 -2px var(--blue)}.modal-body{padding:15px;overflow:auto}.modal-foot{padding:12px 15px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fafcfd}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.field label{display:block;font-size:11px;color:#566f84;font-weight:700;margin-bottom:5px}.field .required{color:#d22;margin-left:2px}.field input,.field select,.field textarea{width:100%;padding:8px 9px;border:1px solid #cbd8e4;border-radius:7px;background:white;color:var(--ink)}.field textarea{min-height:82px;resize:vertical}.field input[readonly]{background:#eef5fb;color:#526b80}.field.span2{grid-column:span 2}.field.span3{grid-column:span 3}.field-help{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.35}.form-section{display:none}.form-section.active{display:block}.form-map{height:310px;border:1px solid var(--line);border-radius:8px;margin-top:10px}.calc-box{background:#eff8ff;border:1px solid #bfdef4;border-radius:8px;padding:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.calc-box b{display:block;font-size:16px;color:var(--blue)}
.upload-box{border:2px dashed #b8cad9;border-radius:9px;padding:18px;text-align:center;background:#fbfdff}.preview-list{font-size:11px;max-height:280px;overflow:auto}.preview-list pre{white-space:pre-wrap;background:#f5f8fb;padding:8px;border-radius:6px}.error-list{color:#a62626}.warning-list{color:#8a5b00}.steps{display:flex;gap:6px;margin-bottom:12px}.step{padding:6px 9px;border-radius:999px;background:#edf2f6;color:#60758a;font-size:11px}.step.active{background:#e3f2ff;color:#096cae;font-weight:750}
.card-menu{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.menu-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:16px}.menu-card h4{margin:0 0 6px}.menu-card p{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.45}.status-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.progress{height:8px;background:#edf2f6;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--blue)}
.toast-root{position:fixed;right:18px;bottom:18px;z-index:200;display:grid;gap:8px}.toast{min-width:280px;max-width:430px;background:#153b58;color:#fff;border-radius:8px;padding:11px 13px;box-shadow:var(--shadow);font-size:12px}.toast.error{background:#9f2f2f}.toast.success{background:#126b49}
.empty{padding:35px;text-align:center;color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.nowrap{white-space:nowrap}
@media(max-width:1150px){.sidebar{width:210px}.main{margin-left:210px}.searchbox{display:none}.kpis{grid-template-columns:repeat(2,1fr)}.grid.two,.grid.equal{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{width:68px}.brand div,.sidebar nav button:not(.active){font-size:0}.sidebar nav button span{font-size:17px}.sidebar-foot{display:none}.main{margin-left:68px}.topbar{padding:0 10px}.top-actions .btn:not(.primary){display:none}.content{padding:12px}.kpis{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.span2,.field.span3{grid-column:span 1}.modal{width:99vw}.card-menu{grid-template-columns:1fr}}

.quality-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.quality-strip>div{border:1px solid #d9e5f0;border-radius:10px;padding:12px;background:#f8fbfe}.quality-strip b{display:block;font-size:22px;color:#123d63}.quality-strip span{display:block;margin-top:4px;font-size:12px;color:#61758a}@media(max-width:900px){.quality-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v2.2 GIS coordinate editor */
.spatial-editor{border:1px solid #b9d8ee;border-radius:10px;background:#f8fcff;padding:12px;grid-column:1/-1}
.spatial-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.spatial-head h4{margin:0 0 4px;color:#174f78}.spatial-head>div:last-child{white-space:nowrap}
.crs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px;border:1px solid #d8e5ef;border-radius:8px;background:#fff}
.important-note{margin:10px 0;padding:10px 12px;border-left:4px solid #df8b00;background:#fff7e6;color:#6e4b0b;border-radius:6px;font-size:11px;line-height:1.5}
.paste-coordinates{display:grid;grid-template-columns:140px minmax(280px,1fr) auto;gap:8px;align-items:center;margin:10px 0}.paste-coordinates label{font-size:11px;font-weight:750;color:#526a7d}.paste-coordinates textarea{min-height:58px;padding:8px;border:1px solid #cbd8e4;border-radius:7px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}
.coord-table{max-height:310px;border:1px solid #d9e5ef;border-radius:8px}.coord-table input{width:100%;min-width:105px;border:1px solid #cbd8e4;border-radius:6px;padding:6px 7px;background:#fff}.coord-table .cp-code{min-width:75px}.coord-table .cp-wgs{font-size:10px;color:#315d7d}.coord-order{font-weight:800;text-align:center;color:#1c5f8d}
.map-coordinate-readout{background:#ffffffeb;border:1px solid #c9d9e6;border-radius:6px;padding:5px 8px;box-shadow:0 1px 5px #0002;font-size:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.leaflet-control-layers{font-size:11px}.leaflet-control-layers-expanded{max-height:340px;overflow:auto}
@media(max-width:900px){.crs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.paste-coordinates{grid-template-columns:1fr}.spatial-head{flex-direction:column}.spatial-head>div:last-child{white-space:normal}}
@media(max-width:620px){.crs-grid{grid-template-columns:1fr}}

.map.compact{height:360px;min-height:320px}

/* v2.2.6 - UI alignment with reviewed mockups */
.sidebar{width:220px;background:linear-gradient(180deg,#063d68 0%,#04345a 55%,#052c4c 100%);box-shadow:2px 0 14px rgba(3,37,63,.14)}
.main{margin-left:220px}.brand{height:62px;padding:12px 15px}.brand strong{font-size:17px;letter-spacing:.2px}.brand small{font-size:10px}
.sidebar nav{padding:8px 8px 14px}.nav-group{margin:0 0 8px}.nav-section{padding:9px 10px 5px;color:#78acd0;font-size:9px;font-weight:800;letter-spacing:.09em}
.sidebar nav button{position:relative;gap:10px;padding:9px 10px;border-radius:7px;font-size:12px;margin:1px 0;transition:background .15s,color .15s,transform .15s}
.sidebar nav button:hover{background:#ffffff12}.sidebar nav button.active{background:linear-gradient(90deg,#0a6dac,#0c5f96);box-shadow:inset 3px 0 #69c3ff;color:#fff}
.sidebar nav button.active:after{content:"";position:absolute;right:8px;width:5px;height:5px;border-radius:50%;background:#80d1ff}
.nav-icon{width:18px;height:18px;min-width:18px;fill:currentColor;opacity:.92}.sidebar nav button span{display:block;width:auto;font-size:inherit;place-items:unset}
.topbar{height:62px;padding:0 16px 0 18px;box-shadow:0 1px 5px rgba(19,60,92,.05)}.content{padding:14px 18px 28px}
.system-kicker{font-size:9px;font-weight:800;letter-spacing:.06em;color:#7890a3;margin-bottom:2px}.breadcrumb{font-size:15px;color:#123d61}
.searchbox{width:min(420px,34vw);height:36px}.btn{border-radius:6px;padding:7px 10px}.btn-icon{margin-right:5px;font-weight:900}
.panel{border-radius:8px}.panel-head{padding:11px 13px}.panel-body{padding:12px}.kpi{border-radius:8px;padding:13px}.kpi .value{font-size:23px}
.filters{border-radius:8px;padding:10px;margin-bottom:12px}.filter select,.filter input{padding:7px 8px}
.modal{width:min(1180px,98vw);border-radius:9px}.modal-head{padding:11px 14px}.modal-tabs{background:#f2f7fb}.modal-tabs button{padding:9px 12px}.modal-tabs button.active{background:#0879d1;color:#fff;box-shadow:none}.modal-body{padding:13px}
.form-grid{gap:10px}.field input,.field select,.field textarea{padding:7px 8px;border-radius:5px}.form-map{border-radius:6px}
.user-scope-box{grid-column:1/-1;border:1px solid #c9ddeb;background:#f5fbff;border-radius:8px;padding:11px 12px}.user-scope-box .scope-title{font-size:11px;font-weight:800;color:#174e74;margin-bottom:8px}.user-scope-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.user-scope-option{display:flex;gap:7px;align-items:flex-start;border:1px solid #d5e4ef;border-radius:7px;background:#fff;padding:9px;cursor:pointer}.user-scope-option input{margin-top:2px;accent-color:#0879d1}.user-scope-option b{display:block;font-size:11px;color:#173b58}.user-scope-option small{display:block;font-size:9px;color:#71879a;margin-top:2px}.user-scope-hint{font-size:10px;color:#60788d;margin-top:7px;line-height:1.4}
.scope-badges{display:flex;gap:4px;flex-wrap:wrap}.scope-badge{display:inline-flex;padding:3px 6px;border-radius:999px;background:#e7f4ff;color:#0a639b;font-size:9px;font-weight:800;border:1px solid #c8e2f4}
.entry-landing{max-width:900px;margin:25px auto}.entry-landing h2{margin:0 0 5px;color:#123d61}.entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.entry-card{border:1px solid #d5e3ee;background:#fff;border-radius:9px;padding:15px;box-shadow:0 3px 12px rgba(21,65,97,.06)}.entry-card .entry-icon{width:34px;height:34px;border-radius:8px;background:#e9f4ff;color:#0879d1;display:grid;place-items:center;font-weight:900;margin-bottom:9px}.entry-card h3{font-size:13px;margin:0 0 5px}.entry-card p{font-size:11px;color:#6b7f91;min-height:31px}.entry-card .btn{margin-top:5px}
@media(max-width:1150px){.sidebar{width:205px}.main{margin-left:205px}.user-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{width:68px}.main{margin-left:68px}.nav-section{display:none}.nav-icon{width:20px;height:20px}.entry-grid,.user-scope-grid{grid-template-columns:1fr}.system-kicker{display:none}}
.modal.medium{width:min(760px,96vw)}


/* v2.2.7+ - full record workspace + configurable fields */
.record-workspace-backdrop{position:fixed;inset:0;z-index:120;background:rgba(7,32,51,.36);display:grid;place-items:center;padding:8px}
.record-workspace{width:min(1540px,99vw);height:min(900px,98vh);background:#fff;border:1px solid #bfd1df;border-radius:9px;box-shadow:0 20px 60px rgba(5,33,52,.28);display:grid;grid-template-rows:auto 1fr;overflow:hidden}
.record-workspace.no-map{width:min(1180px,98vw)}
.workspace-head{height:58px;display:flex;align-items:center;justify-content:space-between;padding:8px 13px 8px 16px;background:linear-gradient(90deg,#075185,#0b669f);color:#fff;border-bottom:1px solid #06446f}
.workspace-head h2{margin:1px 0 0;font-size:16px;color:#fff}.workspace-kicker{font-size:9px;letter-spacing:.09em;font-weight:850;color:#bfe5ff}.workspace-actions{display:flex;gap:7px}.workspace-actions .btn{background:#fff;border-color:#d8e7f2;color:#17465f}.workspace-actions .btn.primary{background:#0f8a5b;color:#fff;border-color:#0f8a5b}
.workspace-body{min-height:0;display:grid;grid-template-columns:minmax(360px,38%) minmax(0,1fr)}
.workspace-map-pane{min-width:0;border-right:1px solid #cddde9;background:#eef5fa;display:grid;grid-template-rows:auto 1fr auto;padding:10px;gap:8px}
.workspace-map-title{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;color:#173f5d}.workspace-map-title b{font-size:12px}.workspace-map-title span{font-size:9px;color:#6b8294;text-align:right}.workspace-map{height:100%;min-height:420px;border:1px solid #bcd0df;border-radius:7px;background:#dfe9f1}.workspace-map-note{font-size:9px;color:#60788c;line-height:1.4}
.workspace-form-pane{min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr auto;background:#fff}.record-workspace.no-map .workspace-form-pane{min-height:0}
.workspace-tabs{overflow-x:auto;overflow-y:hidden;white-space:nowrap;border-bottom:1px solid #cddde9}.workspace-tabs button{font-size:10px;padding:10px 11px}.workspace-scroll{min-height:0;overflow:auto;padding:13px 14px 20px}.workspace-foot{border-top:1px solid #d5e1ea;background:#f8fbfd;padding:9px 13px;display:flex;justify-content:flex-end;gap:7px}
.custom-field-group{border:1px solid #d8e6ef;border-radius:8px;padding:11px;background:#f9fcfe}.custom-field-group h4{margin:0 0 10px;color:#17547e;font-size:12px}.custom-check{display:flex!important;align-items:center;gap:7px;background:#fff;border:1px solid #cbd8e4;border-radius:5px;padding:7px 8px}.custom-check input{width:auto!important}.check-line{display:flex!important;align-items:center;gap:7px;font-size:11px!important}.check-line input{width:auto!important}.inline-link{font-weight:800;color:#0674b8;text-decoration:underline}.inline-link:hover{color:#034d79}
@media(max-width:1050px){.workspace-body{grid-template-columns:340px minmax(0,1fr)}.workspace-map{min-height:360px}}
@media(max-width:800px){.record-workspace{height:99vh;width:99vw}.workspace-body{grid-template-columns:1fr;grid-template-rows:260px 1fr}.workspace-map-pane{grid-template-rows:1fr;padding:6px}.workspace-map-title,.workspace-map-note{display:none}.workspace-map{min-height:0}.workspace-head{height:52px}.workspace-head h2{font-size:13px}.workspace-actions{display:none}.workspace-scroll{padding:10px}.workspace-foot{position:sticky;bottom:0}}

/* v2.2.9 - modal/workspace stacking hotfix: Leaflet panes use z-index up to ~1000. */
#modalRoot{position:relative;z-index:10000}
body.modal-open{overflow:hidden}
.modal-backdrop,.record-workspace-backdrop{z-index:10000!important}
.record-workspace{position:relative;z-index:1;isolation:isolate}
.workspace-head{position:relative;z-index:30}
.workspace-body{position:relative;z-index:1;overflow:hidden;isolation:isolate}
.workspace-map-pane{position:relative;z-index:1;overflow:hidden;isolation:isolate}
.workspace-map{position:relative!important;z-index:0!important;overflow:hidden!important;width:100%;max-width:100%;min-width:0}
.workspace-form-pane{position:relative;z-index:20;overflow:hidden;isolation:isolate}
.workspace-scroll{position:relative;z-index:1}
.toast-root{z-index:12000!important}
.modal-backdrop .modal{position:relative;z-index:1;isolation:isolate}
/* Keep any page-level Leaflet map below overlays even when its panes/controls have large internal z-index. */
#content .leaflet-container{position:relative;z-index:0}


/* v2.2.9 - logistics / coordination */
.coordination-layout{display:grid;grid-template-columns:minmax(500px,44%) minmax(0,1fr);gap:14px;align-items:start}
.coordination-inputs{border:1px solid #d5e3ee;border-radius:8px;background:#fbfdff;padding:12px}
.coordination-map{height:520px;min-height:440px}
.coord-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.coord-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;padding:10px;border:1px solid #d5e3ee;border-radius:8px;background:#f8fbfd;font-size:11px}
.coord-summary>div{padding:7px 8px;background:#fff;border:1px solid #e0e9f0;border-radius:6px}
.route-cost-label{background:#073b62!important;color:#fff!important;border:0!important;box-shadow:0 2px 8px #0003!important;font-weight:800!important;padding:5px 7px!important}
.route-cost-label:before{border-top-color:#073b62!important}
.attachment-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.attachment-toolbar select,.attachment-toolbar input{max-width:360px}
@media(max-width:1250px){.coord-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.coordination-layout{grid-template-columns:1fr}.coordination-map{height:440px}.coord-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.coord-kpis{grid-template-columns:1fr}.coord-summary{grid-template-columns:1fr}.coordination-map{height:360px;min-height:320px}}

/* v2.2.11 - import province scope */
.import-auto-value{min-height:38px;display:flex;align-items:center;padding:0 11px;border:1px solid #cbd9e5;border-radius:7px;background:#f4f8fb;color:#35566f;font-size:13px;font-weight:600}

/* v2.2.11 - import validation clarity */
.alert.warning{border-color:#ead08b;background:#fff9e8;color:#7a5600}
.import-processing{padding:10px 12px;border:1px solid #c9dceb;background:#f7fbff;border-radius:8px;color:#355a74;font-size:12px}
.import-processing summary{cursor:pointer;color:#175b86}
.import-processing[open] summary{margin-bottom:6px}

/* v2.2.13 - facility house marker */
.vlxd-house-icon-wrap{background:transparent;border:0!important}
.vlxd-house-marker{width:28px;height:28px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 5px rgba(0,0,0,.28))}
.vlxd-house-marker svg{width:28px;height:28px;display:block;overflow:visible}

/* v2.2.16 supply priority / projects / bulk */
.priority-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.priority-card{border:1px solid #d8e3ec;border-radius:9px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:5px}.priority-card b{font-size:11px;color:#173c59}.priority-card span{font-size:10px;color:#60788a}.priority-card strong{font-size:16px;color:#0d5f8c}.priority-card.p1{border-left:4px solid #138b5b}.priority-card.p2{border-left:4px solid #0891b2}.priority-card.p3{border-left:4px solid #f59e0b}.priority-card.p4{border-left:4px solid #7c3aed}.select-col{width:34px;text-align:center}.project-demand-table select,.project-demand-table input{min-width:120px;width:100%;box-sizing:border-box}.project-demand-table .pd-tech{min-width:220px}@media(max-width:1100px){.priority-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v2.2.16 - supply scenarios, reserve history, project map */
.scenario-tabs{display:flex;gap:7px;flex-wrap:wrap;padding:8px 0 4px}
.scenario-tab{border:1px solid #b9cada;background:#f5f9fc;color:#23445e;border-radius:8px;padding:8px 11px;font-weight:750;font-size:11px;cursor:pointer}
.scenario-tab:hover{background:#e8f3fb}.scenario-tab.active{background:#0b78c4;color:#fff;border-color:#0b78c4;box-shadow:0 2px 7px #0b78c433}
.annual-extraction-block{margin-top:12px;padding-top:10px;border-top:1px solid #dbe6ee}.annual-extraction-block .data-table input{min-width:110px;width:100%}
#reserveForecastPreview .calc-box{grid-template-columns:repeat(4,minmax(0,1fr))}
#projectFormMap{height:320px;min-height:260px;border-radius:8px;border:1px solid #d5e3ee}
@media(max-width:900px){#reserveForecastPreview .calc-box{grid-template-columns:repeat(2,minmax(0,1fr))}.scenario-tabs{overflow-x:auto;flex-wrap:nowrap}.scenario-tab{white-space:nowrap}}


/* v2.2.16 - dashboard risk, mobile UI, GPS, licensed area */
.risk-layout{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:14px;align-items:stretch}
.risk-title{font-size:11px;font-weight:800;color:#274c68;margin-bottom:8px}
.risk-chart{display:grid;gap:7px}.risk-row{display:grid;grid-template-columns:48px minmax(0,1fr) 34px;gap:8px;align-items:center;font-size:11px}.risk-track{height:12px;background:#edf2f6;border-radius:999px;overflow:hidden}.risk-track i{display:block;height:100%;background:linear-gradient(90deg,#f59e0b,#dc2626);border-radius:999px}.risk-row b{text-align:right;color:#9f2d2d}
.risk-summary{border:1px solid #ead8c1;background:#fffaf3;border-radius:10px;padding:13px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px}.risk-summary>b{font-size:28px;color:#c87500}.risk-summary span{font-size:11px;color:#667b8d}.risk-summary .btn{margin-top:4px}
.location-actions,.field-label-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.field-label-actions label{margin-bottom:0}
.mobile-nav-toggle{display:none;border:1px solid #cbd8e4;background:#fff;color:#15324b;width:38px;height:36px;border-radius:7px;font-size:20px;align-items:center;justify-content:center;padding:0;flex:0 0 auto}.mobile-nav-backdrop{display:none}

@media(max-width:900px){
  .risk-layout{grid-template-columns:1fr}.risk-summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center}.risk-summary>b{font-size:24px}
}

@media(max-width:820px){
  body.mobile-nav-open{overflow:hidden}
  .mobile-nav-toggle{display:flex}
  .sidebar{width:min(290px,86vw)!important;transform:translateX(-102%);transition:transform .2s ease;box-shadow:8px 0 28px rgba(1,29,50,.28);z-index:2000}
  body.mobile-nav-open .sidebar{transform:translateX(0)}
  .sidebar .nav-section{display:block}.sidebar .nav-icon{width:18px;height:18px}.sidebar nav button span{display:block}
  .mobile-nav-backdrop{position:fixed;inset:0;background:rgba(4,28,46,.42);z-index:1900}
  body.mobile-nav-open .mobile-nav-backdrop{display:block}
  .main{margin-left:0!important;width:100%}
  .topbar{height:auto;min-height:60px;padding:8px 10px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"menu title" "actions actions";gap:7px 9px;align-items:center}
  .mobile-nav-toggle{grid-area:menu}.topbar-title{grid-area:title;min-width:0}.top-actions{grid-area:actions;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;width:100%;gap:6px}.searchbox{width:100%;min-width:0}.top-actions .btn{white-space:nowrap;padding:7px 8px}
  .content{padding:10px 9px 22px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{padding:11px}.kpi .value{font-size:20px}.grid.two,.grid.equal{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-wrap:wrap}.panel-head>div:last-child{display:flex;gap:5px;flex-wrap:wrap}.panel-body{padding:10px}.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.filter select,.filter input{width:100%;min-width:0}.filter-check{min-width:0}
  .form-grid{grid-template-columns:1fr}.field.span2,.field.span3{grid-column:span 1}.modal-backdrop{padding:4px}.modal,.modal.medium,.modal.small{width:100vw;max-width:100vw;max-height:100vh;height:100vh;border-radius:0}.modal-body{padding:10px}.modal-foot{position:sticky;bottom:0}.map.large{height:62vh;min-height:390px}.map{min-height:280px}.coordination-inputs{padding:9px}.coordination-map{height:380px;min-height:320px}.tablewrap{max-height:60vh}.data-table{min-width:760px}.project-demand-table{min-width:760px}.quality-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .record-workspace{height:100vh;width:100vw;border-radius:0}.workspace-body{grid-template-rows:235px 1fr}.workspace-foot{padding:7px}.workspace-foot .btn{flex:1}.workspace-tabs button{padding:9px 10px}.crs-grid{grid-template-columns:1fr}.paste-coordinates{grid-template-columns:1fr}.coord-table{max-height:240px}
}
@media(max-width:520px){
  .top-actions{grid-template-columns:1fr auto auto}.top-actions [data-action="new-record"]{grid-column:1/-1}.top-actions .btn-icon{margin-right:0}.content{padding:8px}.kpis{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.quality-strip{grid-template-columns:1fr}.risk-summary{grid-template-columns:auto 1fr}.risk-summary .btn{grid-column:1/-1;width:100%}.bar-row{grid-template-columns:44px 1fr 72px}.coordination-map{height:330px;min-height:300px}.system-kicker{display:none}.breadcrumb{font-size:14px}.subtle{font-size:11px}
}

/* ============================================================
   VLXD GIS 1.0 — institutional shell / authentication / branding
   ============================================================ */
:root{--gov-blue:#2f67b7;--gov-blue-deep:#15509a;--gov-red:#e3262e;--auth-bg:#f5f7fc}
.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:36px 18px 28px;background:var(--auth-bg);color:#1e3650}
.auth-identity{width:min(760px,96vw);text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:20px}
.auth-logo{width:76px;height:76px;object-fit:contain;display:block;margin-bottom:2px}
.auth-ministry{font-weight:800;font-size:17px;color:#2457a4;letter-spacing:.01em;text-transform:uppercase}
.auth-organization{font-weight:850;font-size:16px;color:#2457a4;text-transform:uppercase}
.auth-system-name{font-size:14px;font-weight:750;color:#2f66b8;text-transform:uppercase}
.auth-card{width:min(430px,96vw);padding:20px 20px 18px;border-radius:8px;border:1px solid #e1e5eb;background:#fff;box-shadow:0 10px 24px rgba(28,39,54,.24)}
.auth-card-title{text-align:center;color:#2c62b2;font-size:17px;font-weight:800;margin:1px 0 14px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #d9e1eb;margin:0 0 14px}.auth-tab{padding:8px 10px;font-size:12px}.auth-tab.active{color:#2f67b7;border-bottom:2px solid #2f67b7}
.auth-form{display:grid;gap:13px}.auth-fieldset{border:1.5px solid #4b82d1;border-radius:4px;padding:0 10px 7px;position:relative;margin-top:7px}.auth-fieldset>label{display:inline-block;position:relative;top:-8px;background:#fff;padding:0 5px;color:#3c70bd;font-size:11px;font-weight:650}.auth-input-wrap{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;margin-top:-6px}.auth-input-wrap svg{width:20px;height:20px;fill:#2f67b7}.auth-input-wrap input{border:0!important;outline:0!important;padding:7px 2px!important;margin:0!important;box-shadow:none!important;background:transparent!important;font-size:13px}.password-toggle{border:0;background:transparent;color:#3d6eaf;cursor:pointer;padding:4px;font-size:15px}.auth-submit{width:100%;border:1px solid #245ca9;background:#3269b9;color:#fff;padding:10px 12px;font-size:13px;font-weight:800;letter-spacing:.04em;box-shadow:0 2px 4px #0003;cursor:pointer}.auth-submit:hover{background:#245ca9}.auth-version{text-align:center;color:#8a99a8;font-size:10px;margin-top:13px}.register-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.register-grid label{font-size:11px;font-weight:700;color:#4d6379}.register-grid label.span2{grid-column:span 2}.register-grid input,.register-grid select{display:block;width:100%;padding:9px 10px;margin-top:4px;border:1px solid #c9d5e2;border-radius:5px;background:#fff}.auth-card .hint{font-size:10.5px;line-height:1.45}

/* Header theo phong cách hệ thống hành chính: nhận diện rõ cơ quan và người dùng */
.gov-topbar{position:fixed!important;top:0;left:0;right:0;height:68px!important;min-height:68px;background:var(--gov-blue)!important;border-top:2px solid var(--gov-red);border-bottom:1px solid #194d91!important;color:#fff;z-index:2200!important;padding:0 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;box-shadow:0 1px 4px rgba(11,48,92,.24)!important}
.gov-brand-inline{display:flex;align-items:center;gap:10px;min-width:0}.header-logo{width:50px;height:50px;object-fit:contain;flex:0 0 auto}.header-organization{font-size:13px;font-weight:750;line-height:1.25;color:#fff;text-transform:uppercase}.header-system{font-size:12px;font-weight:800;line-height:1.35;color:#fff;text-transform:uppercase;margin-top:3px}.gov-user-area{display:flex;align-items:center;gap:9px;min-width:0}.gov-user-icon{width:33px;height:33px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:11px}.gov-user-text{min-width:0;text-align:right;line-height:1.25}.gov-user-text strong{display:block;font-size:12px;color:#fff;white-space:nowrap}.gov-user-text span{display:block;font-size:10px;color:#dceaff;white-space:nowrap}.gov-icon-btn{width:34px;height:34px;border:1px solid #ffffff88;border-radius:6px;background:transparent;color:#fff;font-size:18px;cursor:pointer}.gov-icon-btn:hover{background:#ffffff18}.mobile-nav-toggle{color:#fff!important;background:#ffffff12!important;border-color:#ffffff88!important}
.sidebar{top:68px!important;bottom:0!important;height:auto!important}.main{padding-top:68px;min-height:100vh}.workbar{position:sticky;top:68px;z-index:19;height:66px;background:#fff;border-bottom:1px solid #d9e4ed;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 1px 4px rgba(25,65,96,.05)}.workbar .breadcrumb{font-size:15px}.workbar .top-actions{display:flex}.workbar .searchbox{width:360px}.brand-logo{width:38px;height:38px;object-fit:contain}.sidebar-version{font-size:10px;color:#8bb7d4;margin-top:8px}.sidebar-user-mini{font-size:11px;line-height:1.35;color:#dbeaf7}.sidebar-user-mini strong{color:#fff}.system-kicker{display:none!important}

/* Quản trị nhận diện */
.branding-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}.branding-preview{border:1px solid #d8e3ec;border-radius:10px;background:#f7faff;padding:18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px}.branding-preview img{width:88px;height:88px;object-fit:contain}.branding-preview b{font-size:13px;color:#15509a}.branding-preview span{font-size:11px;color:#52708a;line-height:1.45}.branding-preview small{color:#8a9aaa}.branding-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

@media(max-width:900px){
  .auth-shell{padding-top:22px}.auth-logo{width:66px;height:66px}.auth-ministry{font-size:14px}.auth-organization{font-size:13px}.auth-system-name{font-size:11px}.branding-layout{grid-template-columns:1fr}.branding-preview{max-width:360px;margin:auto}
  .gov-topbar{height:62px!important;min-height:62px;padding:0 9px!important}.header-logo{width:42px;height:42px}.header-organization{font-size:11px}.header-system{font-size:9px;max-width:58vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gov-user-icon{display:none}.gov-user-text span{display:none}.gov-user-text strong{font-size:10px;max-width:100px;overflow:hidden;text-overflow:ellipsis}.gov-icon-btn{width:30px;height:30px}.sidebar{top:62px!important}.main{padding-top:62px}.workbar{top:62px;height:auto;min-height:62px;padding:7px 9px;display:grid;grid-template-columns:1fr;gap:6px}.workbar .top-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;width:100%;gap:6px}.workbar .searchbox{width:100%}
}
@media(max-width:560px){
  .auth-shell{padding:16px 10px}.auth-identity{margin-bottom:12px}.auth-logo{width:58px;height:58px}.auth-card{padding:17px 14px}.register-grid{grid-template-columns:1fr}.register-grid label.span2{grid-column:span 1}.header-organization{font-size:10px}.header-system{font-size:8px;max-width:50vw}.gov-user-text{display:none}.workbar .top-actions{grid-template-columns:1fr auto auto}.workbar .top-actions [data-action="new-record"]{grid-column:1/-1}.workbar .breadcrumb{font-size:14px}
}


/* ============================================================
   VLXD GIS 1.0 — R2 compact header + spatial-editor fixes
   ============================================================ */
.coordinate-empty-hint{margin-top:8px;padding:9px 11px;border:1px dashed #aac7df;border-radius:7px;background:#f6fbff;color:#48657a;font-size:11px}
.input-error{border-color:#d92d20!important;box-shadow:0 0 0 2px rgba(217,45,32,.12)!important;background:#fff8f7!important}
.coord-source-link{appearance:none;border:0;background:transparent;padding:0;margin:0;color:#073b62;font:inherit;font-weight:800;text-align:left;cursor:pointer;text-decoration:none}.coord-source-link:hover{color:#0879d1;text-decoration:underline}.coord-source-link:focus-visible{outline:2px solid #0879d1;outline-offset:2px;border-radius:3px}

/* Bỏ thanh công cụ trắng thứ hai; các chức năng được gộp vào header xanh. */
.gov-topbar{height:76px!important;min-height:76px!important;display:grid!important;grid-template-columns:minmax(250px,360px) minmax(145px,210px) minmax(340px,1fr) auto;gap:12px!important;justify-content:stretch!important}
.gov-brand-inline{max-width:360px}.header-page-context{min-width:0;color:#fff;border-left:1px solid rgba(255,255,255,.28);padding-left:12px}.header-page-context .breadcrumb{font-size:14px;font-weight:850;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-page-context #scopeText{font-size:10px;color:#dceaff;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header-actions{display:grid!important;grid-template-columns:minmax(190px,1fr) auto auto auto!important;gap:6px!important;align-items:center!important;min-width:0}.header-actions .searchbox{width:100%;min-width:0;background:#fff;border-color:#fff}.header-actions .searchbox input{min-width:0}.header-action-btn,.header-action-primary{white-space:nowrap;border-color:#ffffffa8!important}.header-action-btn{background:#fff!important;color:#1b4f88!important}.header-action-primary{background:#0a83cf!important;color:#fff!important;border:1px solid #fff6!important;border-radius:6px;padding:8px 10px;cursor:pointer;font-weight:750}.header-action-primary:hover{background:#0875b9!important}
.sidebar{top:76px!important}.sidebar>.brand{display:none!important}.main{padding-top:76px!important}.content{padding-top:12px!important}.gov-user-area{justify-self:end}.mobile-nav-toggle{display:none}

@media(max-width:1250px){
  .gov-topbar{grid-template-columns:minmax(220px,300px) minmax(120px,170px) minmax(260px,1fr) auto;gap:8px!important}.header-system{font-size:10px}.header-actions{grid-template-columns:minmax(150px,1fr) auto auto}.header-actions [data-action="new-record"]{display:none}.gov-user-icon{display:none}
}
@media(max-width:900px){
  .gov-topbar{height:108px!important;min-height:108px!important;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"menu brand user" "context actions actions";grid-template-rows:54px 44px;padding:4px 8px!important;gap:2px 8px!important}.mobile-nav-toggle{display:inline-grid!important;grid-area:menu}.gov-brand-inline{grid-area:brand}.gov-user-area{grid-area:user}.header-page-context{grid-area:context;border-left:0;padding-left:0}.header-page-context .breadcrumb{font-size:12px}.header-page-context #scopeText{display:none}.header-actions{grid-area:actions;grid-template-columns:minmax(110px,1fr) auto auto!important}.header-actions [data-action="new-record"]{display:none}.header-logo{width:38px;height:38px}.header-organization{font-size:10px}.header-system{font-size:8px;max-width:44vw}.sidebar{top:108px!important}.main{padding-top:108px!important}.gov-user-text{display:none}.header-action-btn{padding:6px 7px!important;font-size:10px}.header-actions .searchbox input{font-size:11px}
}
@media(max-width:560px){
  .gov-topbar{height:104px!important;min-height:104px!important;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:52px 42px}.sidebar{top:104px!important}.main{padding-top:104px!important}.header-organization{font-size:9px}.header-system{display:none}.header-actions{grid-template-columns:minmax(0,1fr) auto auto!important}.header-action-btn .btn-icon{display:none}.header-action-btn{padding:6px!important}.gov-icon-btn{width:28px;height:28px}.gov-user-area .gov-icon-btn:first-of-type{display:none}
}

/* ============================================================
   VLXD GIS 1.0 — R3: compact data UI, field labels, sidebar/mobile
   ============================================================ */
.sidebar-mobile-head{display:none}
.sidebar-collapse-btn{width:100%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#e8f5ff;border-radius:7px;padding:8px 9px;margin:0 0 10px;cursor:pointer;font-size:11px;font-weight:750;text-align:center}
.sidebar-collapse-btn:hover{background:rgba(255,255,255,.15)}
body.sidebar-collapsed .sidebar{width:64px!important}
body.sidebar-collapsed .main{margin-left:64px!important}
body.sidebar-collapsed .sidebar .nav-section,body.sidebar-collapsed .sidebar nav button span,body.sidebar-collapsed .sidebar-user-mini,body.sidebar-collapsed .sidebar-version{display:none!important}
body.sidebar-collapsed .sidebar nav{padding-left:7px;padding-right:7px}
body.sidebar-collapsed .sidebar nav button{justify-content:center;padding:10px 8px}
body.sidebar-collapsed .sidebar nav button.active:after{right:4px}
body.sidebar-collapsed .sidebar-collapse-btn{font-size:0;height:34px}
body.sidebar-collapsed .sidebar-collapse-btn:before{content:'→';font-size:18px}

/* Danh sách: bộ lọc, tìm kiếm và thao tác trên đúng một thanh */
.list-panel{overflow:hidden}
.list-toolbar{display:flex;align-items:center;gap:7px;padding:9px 10px;border-bottom:1px solid var(--line);background:#fff;min-width:0}
.list-toolbar-filters{display:flex;min-width:0;flex:1}
.compact-filter-row{display:flex;align-items:center;gap:6px;min-width:0}
.compact-filter-row select{height:34px;min-width:145px;max-width:235px;padding:5px 28px 5px 8px;border:1px solid #c9d8e5;border-radius:7px;background:#fff;color:#26445b;font-size:11px}
.compact-filter-row .compact-reset{width:34px;height:34px;padding:0;font-size:18px;line-height:1;color:#60778a}
.list-search{height:34px;width:min(250px,21vw);min-width:150px;padding:6px 9px;border:1px solid #c9d8e5;border-radius:7px;background:#fbfdff}
.list-toolbar-actions{display:flex;align-items:center;gap:6px;margin-left:auto;white-space:nowrap}
.list-toolbar-actions .btn{height:34px;padding:6px 9px}
.list-count{font-size:10px;color:#6b8295;padding:5px 11px;background:#f8fbfd;border-bottom:1px solid #e6edf3}
.list-panel>.tablewrap,.list-panel>#tableArea>.tablewrap{border-radius:0}

/* Bản đồ: bỏ panel/head dư thừa, tối đa hóa vùng bản đồ nhưng không chiếm cả màn hình */
.map-page-shell{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.map-compact-toolbar{height:48px;display:flex;align-items:center;gap:10px;padding:6px 9px;border-bottom:1px solid var(--line);background:#fff}
.map-compact-toolbar .compact-filter-row{flex:1}
.map-toolbar-note{margin-left:auto;font-size:11px;font-weight:800;color:#466177;white-space:nowrap}
.compact-main-map{height:calc(100vh - 148px)!important;min-height:430px!important;max-height:680px}
.map-help-details{font-size:10px;color:#60788c;border-top:1px solid #e2eaf0;background:#f8fbfd;padding:5px 9px}
.map-help-details summary{cursor:pointer;font-weight:750;color:#355e7b}
.map-help-details>div{padding:6px 0;line-height:1.45}

/* Tọa độ: luôn có nút thêm ngay tại vùng nhập/dán và khi bảng đang trống */
.paste-coordinates{display:grid!important;grid-template-columns:130px minmax(280px,1fr) auto auto!important;align-items:center!important;gap:8px!important}
.paste-coordinates textarea{min-height:58px!important}
.coordinate-empty-hint{display:flex;align-items:center;justify-content:space-between;gap:10px}
.coordinate-empty-hint .btn{flex:0 0 auto}
.spatial-head>div:last-child{display:flex;gap:6px;flex-wrap:wrap}
.coord-table input{min-width:105px}

/* Quản lý người dùng */
.user-toolbar{display:flex;align-items:center;gap:7px;padding:9px 10px;border-bottom:1px solid var(--line);background:#fff}
.user-toolbar input{flex:1;min-width:220px;height:34px;padding:6px 9px;border:1px solid #cbd8e4;border-radius:7px}
.user-toolbar select{height:34px;padding:5px 8px;border:1px solid #cbd8e4;border-radius:7px;background:#fff}
.user-toolbar .btn{height:34px}
.account-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.soft-rule{border:0;border-top:1px solid #dce6ed;margin:16px 0}

/* Đổi tên trường chuẩn */
.field-label-toolbar{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:10px}
.field-label-toolbar label{font-size:11px;font-weight:750;color:#506b80}.field-label-toolbar select{display:block;margin-top:4px;min-width:180px;padding:7px 9px;border:1px solid #cbd8e4;border-radius:7px;background:#fff}
.field-label-table{max-height:52vh}.field-label-table input{width:100%;min-width:260px;padding:6px 8px;border:1px solid #cbd8e4;border-radius:6px}

/* R3 mobile: 1 header gọn; drawer dễ đọc; danh sách không tràn */
@media(max-width:1180px){
  .list-toolbar{flex-wrap:wrap}.list-toolbar-filters{flex:1 1 100%}.list-search{flex:1;width:auto}.list-toolbar-actions{margin-left:0}
  .map-toolbar-note{display:none}
}
@media(max-width:820px){
  .gov-topbar{height:58px!important;min-height:58px!important;display:grid!important;grid-template-columns:38px minmax(0,1fr) auto!important;grid-template-areas:'menu brand user'!important;grid-template-rows:1fr!important;padding:4px 8px!important;gap:6px!important}
  .main{padding-top:58px!important;margin-left:0!important}.sidebar{top:58px!important;bottom:0!important;width:min(300px,88vw)!important}
  .header-page-context,.header-actions{display:none!important}.mobile-nav-toggle{display:flex!important;grid-area:menu!important}.gov-brand-inline{grid-area:brand!important}.gov-user-area{grid-area:user!important}
  .header-logo{width:38px!important;height:38px!important}.header-organization{font-size:10px!important;line-height:1.15}.header-system{font-size:8px!important;max-width:56vw!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .gov-user-text,.gov-user-icon{display:none!important}.gov-icon-btn{width:30px;height:30px}
  .sidebar-mobile-head{display:flex;height:48px;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.14)}
  .sidebar-mobile-head img{width:32px;height:32px;object-fit:contain}.sidebar-mobile-head strong{flex:1;font-size:12px;color:#fff}.sidebar-mobile-head button{width:30px;height:30px;border:1px solid rgba(255,255,255,.25);border-radius:6px;background:rgba(255,255,255,.08);color:#fff}
  .sidebar-collapse-btn{display:none!important}.sidebar nav{padding-top:6px}.sidebar-foot{padding:9px 11px}.sidebar-user-mini{display:block!important}.sidebar-version{display:block!important}
  .content{padding:7px!important}
  .list-toolbar{display:grid;grid-template-columns:1fr;gap:6px;padding:7px}.list-toolbar-filters{width:100%}.compact-filter-row{display:grid;grid-template-columns:1fr 1fr auto;width:100%}.compact-filter-row select{width:100%;min-width:0;max-width:none}.list-search{width:100%;min-width:0}.list-toolbar-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:5px}.list-toolbar-actions .btn{padding:5px 4px;font-size:10px;white-space:normal}
  .list-count{padding:4px 8px}.data-table{min-width:720px}.actions-cell{flex-wrap:wrap}
  .map-compact-toolbar{height:auto;min-height:44px;padding:6px}.map-compact-toolbar .compact-filter-row{grid-template-columns:1fr 1fr auto}.compact-main-map{height:calc(100vh - 116px)!important;min-height:380px!important;max-height:none}
  .paste-coordinates{grid-template-columns:1fr!important}.paste-coordinates label{font-size:11px}.paste-coordinates textarea{width:100%}.spatial-head{align-items:flex-start!important;gap:8px}.spatial-head>div:last-child{width:100%}.spatial-head>div:last-child .btn{flex:1;min-width:105px}
  .user-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:6px}.user-toolbar input{grid-column:1/-1;min-width:0;width:100%}.user-toolbar .btn{width:100%}
  .field-label-toolbar{align-items:stretch;flex-direction:column}.field-label-toolbar select{width:100%}.field-label-table input{min-width:210px}
}
@media(max-width:520px){
  .header-system{display:none!important}.header-organization{max-width:58vw;font-size:9px!important}.gov-user-area .gov-icon-btn:first-of-type{display:inline-grid!important}
  .compact-filter-row{grid-template-columns:1fr auto}.compact-filter-row select{grid-column:1/-1}.compact-filter-row .compact-reset{grid-column:2;grid-row:1;display:none}
  .list-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.list-toolbar-actions .btn{font-size:10px}
  .map-compact-toolbar .compact-filter-row{grid-template-columns:1fr 1fr}.map-compact-toolbar .compact-reset{display:none}.compact-main-map{height:calc(100vh - 110px)!important;min-height:340px!important}
  .workspace-body{grid-template-rows:210px 1fr!important}.workspace-map-pane{padding:4px!important}.workspace-scroll{padding:7px!important}.workspace-tabs button{padding:8px 9px!important}.workspace-foot{padding:7px!important}
  .modal-body{padding:8px!important}.form-grid{gap:8px!important}.field input,.field select,.field textarea{font-size:13px}
  .user-toolbar{grid-template-columns:1fr}.user-toolbar input{grid-column:auto}.user-toolbar select{width:100%}
}
\n/* R3-final layout refinement */\n@media(min-width:821px){\n  .list-toolbar{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:thin}\n  .list-toolbar-filters{flex:0 1 auto!important;min-width:0}\n  .compact-filter-row select{min-width:112px;max-width:168px}\n  .list-search{width:170px;min-width:135px}\n  .list-toolbar-actions{flex:0 0 auto}\n  .list-toolbar-actions .btn{padding-left:7px;padding-right:7px}\n  .map-compact-toolbar{height:40px;padding:3px 7px}\n  .map-compact-toolbar .compact-filter-row select{height:32px}\n}\n@media(max-width:1180px) and (min-width:821px){\n  .list-toolbar{flex-wrap:nowrap!important}\n  .list-toolbar-filters{flex:0 1 auto!important}\n  .compact-filter-row select{min-width:100px;max-width:145px;font-size:10px}\n  .list-search{width:145px;min-width:115px;font-size:10px}\n  .list-toolbar-actions{margin-left:auto!important}\n  .list-toolbar-actions .btn{font-size:10px;padding:5px 6px}\n}\n@media(max-width:820px){\n  body.sidebar-collapsed .sidebar{width:min(304px,88vw)!important}\n  body.sidebar-collapsed .sidebar nav button span,body.sidebar-collapsed .sidebar .nav-section,body.sidebar-collapsed .sidebar-user-mini,body.sidebar-collapsed .sidebar-version{display:initial!important}\n  body.sidebar-collapsed .sidebar .nav-section{display:block!important}\n  body.sidebar-collapsed .sidebar nav button{justify-content:flex-start!important;padding:9px 10px!important}\n  .sidebar>.brand{display:none!important}\n  .sidebar-mobile-head{background:rgba(0,0,0,.08);position:sticky;top:0;z-index:2}\n  .sidebar nav button{min-height:42px;border-radius:8px}\n  .sidebar nav button span{display:inline!important;font-size:12px;line-height:1.25}\n  .sidebar .nav-icon{width:19px!important;height:19px!important;flex:0 0 19px}\n  .sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.12)}\n  .list-toolbar{box-shadow:none}\n  .list-toolbar-filters{order:1}.list-search{order:2}.list-toolbar-actions{order:3}\n  .compact-main-map{height:calc(100dvh - 112px)!important}\n}\n@media(max-width:520px){\n  .list-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}\n  .list-toolbar-actions .btn{min-height:36px}\n  .compact-filter-row{grid-template-columns:1fr 1fr!important}\n  .compact-filter-row select{grid-column:auto!important}\n  .compact-filter-row select:nth-of-type(3){grid-column:1/-1!important}\n  .compact-filter-row .compact-reset{display:none!important}\n  .map-compact-toolbar .compact-filter-row{grid-template-columns:1fr 1fr!important}\n}\n