/* DPUTR Kabupaten Bandung: official green, precise GIS controls. */
:root{font-family:Arial,Helvetica,sans-serif;color:#20392d;--ink:#163b26;--muted:#64756b;--line:#d6ded8;--green:#0c7135;--accent:#ffd000;--shadow:0 2px 8px #172b2014}
body{font-size:16px;background:#fff}
.topbar{height:76px;padding:0 24px 0 18px;background:#fff;color:#163b26;border-bottom:1px solid #d0d9d2;gap:24px}
.brand{gap:12px;letter-spacing:0;font-size:20px;font-weight:700;flex-shrink:0}
.brand-logo-frame{position:relative;width:44px;height:48px;overflow:hidden;display:block;flex-shrink:0}
.topbar .brand-logo{position:absolute;width:76px;height:74px;max-width:none;left:-15px;top:-13px;border:0;border-radius:0;background:none;object-fit:contain;padding:0}
.brand-name{display:flex;flex-direction:column;gap:4px;line-height:1.05;letter-spacing:.3px}
.brand-name>span{font-size:14px;letter-spacing:0;font-weight:500}
.portal-label{font-size:12px;font-weight:600;letter-spacing:1.3px;color:#637a69;border-left:1px solid #d4ddd6;padding:9px 0 9px 20px}
.topbar .workspace-name{font-size:14px;color:#637a69}.topbar .workspace-name .county-link{color:#346044}.top-divider{background:#d4ddd6}
.workspace,.gis-workspace .workspace{height:calc(100dvh - 76px)}
.gis-workspace{--nav-width:248px;--nav-rail:68px;--forest:#0c7135;--soft-green:#e8f1eb}
.gis-workspace .sidebar{padding:18px 12px 0;background:#10492c;color:#d9e8de;border:0;overflow:visible}
.navigation-heading{padding:0 4px 23px;min-height:45px}
.navigation-heading>.nav-copy{font-size:12px;letter-spacing:2px;color:#adccb7}
#toggle-sidebar{border-radius:3px;width:32px;height:32px;background:#ffffff0b;border:1px solid #ffffff36;color:#fff;font-size:20px}
#toggle-sidebar:hover{background:#ffffff18}
.module-navigation{gap:4px}
.module-button{min-height:49px;border-radius:3px;padding:10px 12px;gap:12px;border:0;color:#e0ebe3}
.module-button:hover{background:#ffffff10}
.module-button.active{background:#ffffff13;color:#fff;border:0;box-shadow:inset 3px 0 #ffcf00}
.module-button.active:before{display:none}
.module-icon{width:26px;flex-basis:26px}.module-icon svg{width:22px;height:22px}
.module-button strong{font-size:14px;font-weight:500}
.module-button.active strong{font-weight:700}
.nav-separator{background:#ffffff23;margin:20px 12px 16px}
.nav-collapsed .module-button{min-height:48px;border-radius:3px}
.nav-collapsed .navigation-heading{padding-bottom:23px}
.gis-workspace.nav-collapsed .sidebar{padding-left:8px;padding-right:8px}
.account-panel{margin-top:auto;display:flex;align-items:center;gap:12px;padding:22px 12px;border-top:1px solid #ffffff26;min-height:86px}
.account-icon{display:grid;place-items:center;width:28px;height:34px;flex-shrink:0;color:#c6dbce}.account-icon svg{width:23px;height:23px}
.account-copy{min-width:0}.account-copy strong{display:block;font-size:14px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:154px}
.account-copy button{display:block;padding:7px 0 0;color:#c0d5c7;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.account-copy button:hover{color:#fff}.account-copy button:disabled{opacity:.55;cursor:default}
.nav-collapsed .account-panel{padding:22px 0;justify-content:center}
.gis-workspace .map-section,.gis-workspace #map{background:#e6eae6}
.gis-workspace #map{top:65px;bottom:30px}
.gis-workspace .map-top{left:0;right:0;top:0;height:65px;padding:12px 20px;background:#fff;border-bottom:1px solid #d3dbd4;gap:20px;align-items:center;z-index:8}
.global-search{width:430px}
.gis-workspace .searchbox{height:40px;border-radius:3px;background:#f5f7f5;border:1px solid #cbd5cd;box-shadow:none;padding:0 12px;gap:10px;color:#526f5b}
.gis-workspace .searchbox input{font-family:inherit;font-size:14px;color:#203c2a}
.gis-workspace .searchbox input::placeholder{color:#718176;opacity:1}
.gis-workspace .searchbox:focus-within{border-color:#0c7135;box-shadow:0 0 0 2px #0c713518}
.gis-workspace .searchbox kbd{font-size:12px;border-color:#d5ded7;color:#6b7d70;background:#fff}
.active-module-label{background:none;color:#376146;border:0;border-radius:0;font-size:13px;font-weight:600;padding:0;letter-spacing:0;white-space:nowrap}
.search-results{top:48px;border-radius:3px;border-color:#cfd9d1;box-shadow:0 6px 18px #1834211f}
.search-results .list-header{padding:13px 16px}.search-results .list-header h2,.search-results .text-button{font-size:13px}
.search-results .results{max-height:calc(100dvh - 238px)}
.search-results strong{font-size:14px}.search-results small{font-size:12px;line-height:1.5}
.village-mark,.district-thumb{border-radius:2px}.village-mark{background:#edf3ef;color:#356648}
.county-outline{stroke:#244e31;stroke-width:1.5}.county-shape{stroke:#f4fff0;stroke-width:.85;stroke-dasharray:4 3}.county-shape:hover{fill:#ffcf0038}
.map-actions,.camera-controls,.layer-panel,.map-breadcrumb,.map-tool{border-radius:3px;background:#fff;color:#244d33;border:1px solid #cbd6cd;box-shadow:0 2px 6px #152d2014;backdrop-filter:none}
.gis-workspace .map-actions{top:85px;right:20px;padding:2px;border-radius:3px}
.map-actions button{width:34px;height:36px;color:#31533c;border-radius:1px;font-size:21px}
.map-actions button:hover,.camera-controls button:hover{background:#edf3ee}.map-actions>span{background:#d8e0d9;margin:3px 5px}
.camera-controls{bottom:48px;right:20px;padding:3px;gap:1px;border-radius:3px}
.camera-controls button{color:#2b5037;width:34px;height:34px;border-radius:1px;font-size:22px}.camera-controls #compass-needle{color:#0b7035;font-size:23px}.camera-controls small{font-size:11px}
.gis-workspace .layer-panel{top:85px;right:67px;border-radius:3px;color:#2c4935;padding:16px;min-width:205px}.layer-panel strong,.layer-panel label{font-size:14px}.layer-panel input{accent-color:#0c7135}
.gis-workspace .map-footer{height:30px;align-items:center;padding:0 16px;background:#f9fbf9;color:#607465;border-top:1px solid #cfd9d1;font-size:11px;line-height:1.3}
.gis-workspace .map-footer #zoom-label{color:#274d34;font-weight:600}
.map-section button:focus-visible{outline-color:#0c7135}
.sidebar button:focus-visible{outline-color:#ffcf00}
.module-empty{left:20px;bottom:49px;width:320px;max-width:calc(100% - 90px);padding:20px;background:#fff;border:1px solid #cdd8cf;border-left:3px solid #0c7135;border-radius:2px;box-shadow:0 2px 8px #152d2014}
.empty-icon{display:block;width:28px;height:28px;color:#0c7135;margin-bottom:15px}.empty-icon svg{width:26px;height:26px}
.module-empty h1{font-size:18px;line-height:1.35;letter-spacing:0;font-weight:600}.module-empty p{font-size:14px;line-height:1.6;color:#697b6e;margin:10px 0 18px}
.primary-action,.secondary-action{font-family:inherit;border-radius:3px;min-height:38px;font-size:14px;font-weight:500;padding:9px 13px;gap:10px}
.primary-action{background:#0c7135;color:#fff}.primary-action:hover{background:#095b2a}.secondary-action{border-color:#bdcec1;color:#315d40}.secondary-action:hover{background:#edf3ef}
.gis-workspace[data-module=database] .map-section{background:#f2f5f2}.gis-workspace[data-module=database] .active-module-label{background:none;border:0;color:#376146}
.database-view{inset:65px 0 0;padding:30px 32px 48px}
.database-heading{margin-bottom:22px}.section-kicker{font-size:12px;letter-spacing:1.5px;color:#64816c}
.database-heading h1{font-size:28px;letter-spacing:-.5px;font-weight:600}.database-heading>div>p:last-child{font-size:14px;color:#6d7f71}
.database-notice{padding:12px 16px;margin-bottom:24px;border:1px solid #d3ded4;border-left:3px solid #6d9176;border-radius:0;background:#eaf0eb;color:#566f5e;font-size:13px}.database-notice p{line-height:1.6}
.source-collections{gap:0;border-top:1px solid #cbd8ce}
.source-collection{border:0;border-bottom:1px solid #cbd8ce;border-radius:0;background:#fff;overflow:hidden}
.collection-heading{padding:17px 20px;border-bottom:1px solid #e5ebe6;background:#fafcf9;gap:12px}.collection-icon{width:30px;height:30px;border:0;background:none;border-radius:0;color:#0c7135}.collection-icon svg{width:24px;height:24px}
.collection-heading h2{font-size:15px;font-weight:600;line-height:1.5;margin:0}.collection-heading small{font-size:12px;line-height:1.5;color:#77887b}.collection-heading>button{font-size:13px;color:#0c7135}
.source-row{padding:18px 20px;border-bottom-color:#e5ebe6;gap:14px}.source-info strong{font-size:14px}.source-info small{font-size:12px;color:#6d7f72;line-height:1.6}.file-icon{font-size:11px;border-radius:2px;background:#edf3ee;color:#236b3b;border-color:#d0ded3}
.source-row a,.source-row button{font-size:13px;color:#0c7135}.source-row .remove-source{font-size:20px;color:#708d79}
.collection-empty{padding:19px 20px}.collection-empty p{font-size:13px;line-height:1.7;color:#75877a}.collection-empty button{font-size:13px;color:#0c7135}
.reference-icon{display:grid;place-items:center;color:#456b50}.reference-icon svg{width:23px;height:23px}
.reference-sources h2{font-size:14px}.reference-row strong{font-size:14px}.reference-row small,.reference-row a{font-size:12px}.reference-row{border-color:#d9e2db}
.gis-workspace #source-dialog{border-radius:4px;border-color:#b8c9bd;box-shadow:0 15px 60px #14342238;font-family:inherit}.gis-workspace #source-dialog h2{font-size:23px;letter-spacing:0}.gis-workspace #source-dialog .source-help{font-size:14px;color:#6d7f72}
#source-form>label{font-size:14px}#source-form>label>input,#source-form>label>select{font-size:14px;border-radius:3px;border-color:#c4d1c7}#source-form>label>small{font-size:12px}.source-type legend,.source-type label{font-size:14px}.source-type input{accent-color:#0c7135}
/* Detail pages share the same institutional identity. */
body:not(.gis-workspace) .sidebar{border-color:#d1dbd3}.sidebar-heading h1{color:#1d4c2c}.sidebar-heading h1 span{display:none}
body:not(.gis-workspace) .map-footer{background:#f7faf7;color:#56705e;border-color:#d0dcd3}
body:not(.gis-workspace) .map-breadcrumb>span{color:#6c8072}
.detail-panel{border-radius:4px;border-color:#cbd8ce}.building-row{border-radius:2px}.badge{border-radius:2px}
@media(max-width:1100px){.portal-label{font-size:11px;letter-spacing:.8px}.gis-workspace{--nav-width:228px}.module-button strong{font-size:14px}}
@media(max-width:760px){
 .topbar{height:70px;padding:0 14px 0 12px;gap:12px}.brand{gap:9px;font-size:18px}.brand-name>span{font-size:13px}.brand-logo-frame{width:37px;height:43px}.topbar .brand-logo{width:68px;height:66px;left:-14px;top:-12px}.portal-label{display:none}.top-end:empty{display:none}.workspace-name{display:none!important}
 .workspace,.gis-workspace .workspace{height:calc(100dvh - 70px)}.gis-workspace{--nav-rail:58px;--nav-width:244px}
 .gis-workspace .sidebar{padding:14px 10px 0;box-shadow:12px 0 30px #132a2326}.gis-workspace.nav-collapsed .sidebar{padding:14px 5px 0;box-shadow:none}
 .navigation-heading{padding:0 3px 20px}.nav-collapsed .navigation-heading{padding-bottom:20px}.module-button{min-height:48px}.nav-collapsed .module-button{min-height:48px}.nav-separator{margin:18px 7px 14px}
 .account-panel{padding:18px 9px;min-height:82px}.nav-collapsed .account-panel{padding:18px 0}
 .gis-workspace .map-top{height:62px;padding:10px 12px;gap:0}.global-search{width:100%}.gis-workspace .searchbox{height:40px;padding:0 10px}.gis-workspace .searchbox input{font-size:14px}.active-module-label{display:none}
 .gis-workspace #map{top:62px;bottom:40px}.gis-workspace .map-actions{top:77px;right:12px}.map-actions button{height:34px;width:32px}.gis-workspace .layer-panel{top:77px;right:56px;min-width:180px;padding:14px}
 .camera-controls{bottom:54px;right:12px}.camera-controls button{height:34px;width:31px}.gis-workspace .map-footer{height:40px;padding:4px 10px;font-size:10px;line-height:1.4;gap:8px}.gis-workspace .map-footer>span:last-child{max-width:220px}
 .module-empty{left:12px;bottom:107px;width:calc(100% - 24px);max-width:none;padding:18px}.module-empty h1{font-size:17px}.module-empty p{font-size:13px;line-height:1.6}.empty-icon{margin-bottom:10px}.primary-action,.secondary-action{font-size:13px}
 .database-view{inset:62px 0 0;padding:22px 16px 32px}.database-heading h1{font-size:25px}.database-heading>div>p:last-child{font-size:14px}.database-notice{padding:10px 12px;font-size:12px}.collection-heading{padding:14px 12px;gap:8px}.collection-heading h2{font-size:14px}.collection-heading small{font-size:12px}.collection-heading>button{font-size:12px}.collection-icon{width:25px;height:28px}.collection-icon svg{width:22px;height:22px}
 .source-row{padding:15px 12px;gap:9px}.source-info strong{font-size:13px}.source-info small{font-size:12px}.source-row a,.source-row button{font-size:12px}.collection-empty{padding:16px 12px}.collection-empty p,.collection-empty button{font-size:13px}.reference-row strong{font-size:13px}.reference-row small,.reference-row a{font-size:12px}
 body:not(.gis-workspace) .sidebar{top:70px}
}
