:root{color-scheme:light;--bg:#eef7fa;--panel:#fff;--line:#dce8ed;--ink:#0a3855;--muted:#728795;--accent:#38b95f;--teal:#1594a8;--gold:#d7a600;--red:#db3f4d;--purple:#7042c1;--shadow:0 7px 24px #174a6512}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:14px/1.5 "Segoe UI",Arial,sans-serif;background:linear-gradient(180deg,#f8fbfc,#eaf5f8 300px,#f2f8fa);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}main{max-width:1750px;margin:0 auto;padding:25px 32px 18px}header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px}.agency-brand{display:flex;align-items:center;min-width:460px}.bmkg-logo{display:block;width:76px;height:96px;object-fit:contain;object-position:center;filter:drop-shadow(0 3px 7px #174a6518);flex:0 0 auto}.brand-divider{width:1px;height:54px;background:#d6e5eb;margin:0 15px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:750;color:var(--teal)}h1{font-size:30px;letter-spacing:-1px;margin:5px 0 3px}h1 span{font-weight:350;color:#78909d;margin-left:7px}.heading p{color:var(--muted);margin:0}.header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.connection{font-size:12px;white-space:nowrap;color:#8a6b23;background:#fff8e9;border:1px solid #ecdcb8;border-radius:999px;padding:7px 11px;font-weight:700}.connection[data-state=online]{color:#299b4e;background:#ecfaf0;border-color:#ccebd5}.connection[data-state=error]{color:#a44545;background:#fff5f5;border-color:#eccdcd}.updated,.recent-setting{display:grid;line-height:1.3;border-left:1px solid var(--line);padding-left:12px}.updated span,.updated small,.recent-setting>span:first-child{font-size:9px;color:var(--muted)}.updated span,.recent-setting>span:first-child{font-weight:800;letter-spacing:1.1px}.updated b{font-size:12px}.recent-setting>span:last-child{font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap}.recent-setting input{width:51px;border:1px solid #d3e0e6;border-radius:6px;padding:4px 5px;color:var(--ink);font-weight:700}.primary{background:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:999px;padding:10px 16px;font-weight:700}.primary:hover{background:#2ea853}.primary:disabled{opacity:.55;cursor:wait}.banner{color:#287d48;border:1px solid #cfe8d7;background:#f2fbf5;border-radius:9px;padding:9px 13px;margin-bottom:16px}.banner.warning{color:#936514;border-color:#eadbb8;background:#fffaf0}.banner.error{color:#a44545;border-color:#eccdcd;background:#fff5f5}.summary{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}.summary article{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:14px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.summary article::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--teal)}.summary article.low::before{background:#31a557}.summary article.medium::before{background:var(--gold)}.summary article.high::before{background:var(--red)}.summary article.recent::before{background:var(--purple)}.summary article span{display:block;font-size:10px;letter-spacing:1.5px;font-weight:750;color:var(--muted)}.summary strong{display:block;font-size:29px;margin:5px 0 1px}.summary small{color:var(--muted);font-size:11px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;margin-bottom:16px;align-items:start}.map-card,.region-panel,.table-card{background:var(--panel);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px}.panel-head h2{font-size:17px;margin:2px 0 0}.panel-head h2 small{font-size:11px;font-weight:500;color:var(--muted)}.legend{display:flex;gap:11px;flex-wrap:wrap;color:#607987;font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.low{background:#31a557}.dot.medium{background:var(--gold)}.dot.high{background:var(--red)}.ring{width:13px;height:13px;border:3px solid var(--purple);box-shadow:0 0 0 2px #7042c126;border-radius:50%;display:inline-block}#map{height:450px;border-top:1px solid var(--line);background:#fff;position:relative;overflow:hidden}#local-map{display:block;width:100%;height:100%;background:#fff}.relief{display:none}.district{fill:none;stroke:#7f918d;stroke-width:.72;stroke-opacity:.7;vector-effect:non-scaling-stroke}.region{fill:#fff;fill-opacity:0;stroke:#355f67;stroke-width:1.55;vector-effect:non-scaling-stroke}.region-label{font:600 17px "Segoe UI",Arial;fill:#38585f;text-anchor:middle;paint-order:stroke;stroke:#f4f7f4;stroke-width:5px;pointer-events:none}.marker{stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke;cursor:pointer;filter:drop-shadow(0 2px 3px #133f506f)}.marker:hover,.marker:focus{stroke:#173f4b;stroke-width:5;outline:none}.marker.low{fill:#31a557}.marker.medium{fill:var(--gold)}.marker.high{fill:var(--red)}.marker.unknown{fill:#687a84}.marker.is-recent{stroke:#fff;stroke-width:4}.recent-halo{fill:#7042c11b;stroke:var(--purple);stroke-width:3;vector-effect:non-scaling-stroke;pointer-events:none;filter:drop-shadow(0 0 4px #7042c155)}.map-controls{position:absolute;z-index:4;left:10px;top:10px;display:grid;box-shadow:0 3px 12px #17394722}.map-controls button{width:34px;height:34px;border:1px solid #bdcbc8;border-bottom:0;background:#fbfcfa;color:#294d57;font-size:20px;line-height:1}.map-controls button:first-child{border-radius:7px 7px 0 0}.map-controls button:last-child{border-bottom:1px solid #bdcbc8;border-radius:0 0 7px 7px;font-size:17px}.map-controls button:hover{background:#eef5f2}.map-mode{position:absolute;z-index:3;right:10px;bottom:9px;border:1px solid #c6d3cf;background:#f8faf7e8;color:#536d68;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:750;letter-spacing:1px}.popup{position:absolute;z-index:5;width:292px;max-height:390px;overflow:auto;transform:translate(-50%,-102%);background:#fff;border:1px solid #cbd9d6;border-radius:9px;padding:13px 15px;color:#244953;box-shadow:0 12px 32px #17394735;font-size:12px;line-height:1.55}.popup::after{content:"";position:absolute;left:50%;bottom:-7px;width:13px;height:13px;background:#fff;border-right:1px solid #cbd9d6;border-bottom:1px solid #cbd9d6;transform:translateX(-50%) rotate(45deg)}.popup>button{position:absolute;right:7px;top:5px;border:0;background:none;color:#69817f;font-size:20px}.popup strong{display:block;padding-right:20px;color:#0b4053;margin-bottom:4px}.popup>span{display:grid;grid-template-columns:128px 1fr;gap:5px}.popup b{font-weight:700}.attribution{padding:5px 12px;border-top:1px solid #e2e9e6;background:#f8faf8;color:#6c7d79;font-size:10px}.small-button{background:#f7fafb;color:#3f5e6e;border:1px solid #d7e3e8;border-radius:7px;padding:7px 10px;font-size:12px}.small-button:hover{background:#eaf5f8;color:#087e96}.region-list{border-top:1px solid var(--line);max-height:300px;overflow:auto}.region-item{width:100%;display:flex;justify-content:space-between;gap:10px;min-height:31px;padding:6px 14px;border:0;border-bottom:1px solid #edf2f4;background:#fff;color:var(--ink);text-align:left;font-size:11px;align-items:center}.region-item:hover,.region-item.selected{background:#eef8fa}.region-item span:last-child{min-width:29px;text-align:center;background:#e8f3f6;color:#31768a;border-radius:999px;padding:2px 7px;font-weight:700}.district-summary{padding:12px 14px;border-top:1px solid var(--line);max-height:180px;overflow:auto}.district-summary h3{font-size:14px;margin:3px 0 7px}.district-summary p{font-size:11px;color:var(--muted)}.district-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed #dce8ed;font-size:11px}.district-row button{border:0;background:none;color:var(--ink);padding:0;text-align:left}.district-row b{color:var(--teal)}.quality{display:grid;grid-template-columns:1fr auto;gap:5px 12px;margin:0 14px 13px;padding:10px;border:1px solid #dfe8ec;border-radius:8px;background:#f7fafb}.quality span{font-size:9px;font-weight:800;letter-spacing:.8px;color:var(--muted)}.quality strong{font-size:12px}.table-card{margin-bottom:16px}.table-head{align-items:flex-start}.filters{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap;max-width:1120px}.filters input,.filters select,.copy-message{min-height:36px}.filters input,.filters select{border:1px solid #d7e3e8;background:#fff;padding:7px 9px;border-radius:7px;color:var(--ink);font-size:11px}.filters input{width:220px}.filters select{max-width:170px}.copy-message{display:inline-flex;align-items:center;justify-content:center;margin:0;border:1px solid #b9d8c3;background:#effaf2;color:#277c45;border-radius:7px;padding:0 12px;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.copy-message:hover:not(:disabled){background:#e1f5e7;border-color:#8fc8a0;color:#1d6f3a}.copy-message:disabled{background:#f3f5f6;border-color:#e2e8eb;color:#9aa8af;cursor:not-allowed;opacity:1}.table-scroll{overflow:auto;max-height:430px}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;background:#f2f7f9;color:#607987;font-size:10px;padding:10px 14px;position:sticky;top:0;z-index:1}td{padding:10px 14px;border-top:1px solid #e3ecef;white-space:nowrap}tbody tr:hover td{background:#f3f9fb}.badge{border-radius:999px;padding:3px 7px;font-weight:700;font-size:10px}.badge.low{background:#eaf8ee;color:#278047}.badge.medium{background:#fff6da;color:#8a6900}.badge.high{background:#fff0f1;color:#b44854}.badge.unknown{background:#edf1f3;color:#526771}.observation-status{color:#6c7e87;font-size:10px;font-weight:750}.observation-status.recent{color:#6330b7;background:#f1ebfc;border:1px solid #ddcff6;border-radius:999px;padding:3px 7px}footer{color:#78909d;font-size:11px;margin-top:8px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#0a4965;color:#fff;border-radius:8px;padding:11px 17px;opacity:0;pointer-events:none;z-index:1100;transition:.2s}#toast.show{opacity:1}@media(max-width:1250px){main{padding:22px}.workspace{grid-template-columns:minmax(0,1fr) 290px}.agency-brand{min-width:390px}.header-actions{gap:7px}.filters input{width:180px}}@media(max-width:950px){main{padding:18px}.workspace{grid-template-columns:1fr}.region-panel{display:grid;grid-template-columns:1fr 1fr}.region-panel>.panel-head,.quality{grid-column:1/-1}.region-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px}.district-summary{border-left:1px solid var(--line)}.summary{grid-template-columns:repeat(3,1fr)}header{align-items:flex-start;flex-direction:column}.header-actions{justify-content:flex-start}#map{height:440px}}@media(max-width:650px){main{margin:0;padding:12px}.agency-brand{min-width:0}.bmkg-logo{width:54px;height:68px}.brand-divider{height:45px;margin:0 10px}.heading .eyebrow{font-size:8px}.heading h1{font-size:24px}.heading h1 span{display:block;margin-left:0}.heading p{font-size:11px}.summary{grid-template-columns:1fr 1fr;gap:9px}.summary article:first-child{grid-column:span 2}.workspace{gap:11px}.region-panel{display:block}.region-list{grid-template-columns:1fr 1fr}.district-summary{border-left:0}.panel-head{align-items:flex-start;flex-direction:column}.filters{justify-content:flex-start;width:100%}.filters input{flex:1 1 200px;width:auto}.filters select{flex:1 1 140px;max-width:none}#map{height:350px}.updated,.recent-setting{border-left:0;padding-left:0}.popup{width:260px}.popup>span{grid-template-columns:112px 1fr}}

/* DMC HEADER/NAV V2 — full-width shared shell; page content remains page-specific */
.dmc-header{width:100%!important;margin:0!important;padding:0!important;}
.dmc-head{width:100%;max-width:1500px;box-sizing:border-box;}
.dmc-nav-wrap{width:100%;margin:0!important;padding:0!important;}
.dmc-nav{width:100%;max-width:1500px;box-sizing:border-box;}
.dmc-module{flex:0 0 auto;}
.dmc-tools{margin-left:auto;}
@media(min-width:1051px){
  .dmc-head{min-height:78px;}
  .dmc-tools{max-width:none;flex-wrap:nowrap;}
}
@media(max-width:1050px){
  .dmc-tools{max-width:none;}
}
