body{background:var(--theme-background,#f5f7fb);color:#172033}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:270px;background:var(--theme-sidebar,#111827);color:#fff;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{font-size:20px;font-weight:700;margin:8px 8px 18px}
.nav-section{margin-bottom:14px}
.nav-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af;margin:12px 10px 6px}
.sidebar a{display:block;color:#d1d5db;text-decoration:none;padding:9px 12px;border-radius:8px;margin-bottom:3px}
.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.12);color:#fff}
.app-main{flex:1;padding:18px;min-width:0}
.topbar{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;margin-bottom:18px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.btn-primary{--bs-btn-bg:var(--theme-primary,#2563eb);--bs-btn-border-color:var(--theme-primary,#2563eb);--bs-btn-hover-bg:var(--theme-primary,#2563eb);--bs-btn-hover-border-color:var(--theme-primary,#2563eb)}
.btn-outline-primary{--bs-btn-color:var(--theme-primary,#2563eb);--bs-btn-border-color:var(--theme-primary,#2563eb);--bs-btn-hover-bg:var(--theme-primary,#2563eb);--bs-btn-hover-border-color:var(--theme-primary,#2563eb)}
.text-primary{color:var(--theme-primary,#2563eb)!important}
.card{border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 20px rgba(15,23,42,.04)}
.stat{display:block;text-decoration:none;color:inherit}
.stat .value{font-size:28px;font-weight:700}
.table-actions{white-space:nowrap}
.empty-state{border:1px dashed #cbd5e1;border-radius:10px;background:#fff;padding:28px;text-align:center}
#map{height:calc(100vh - 150px);min-height:560px;border-radius:10px}
.map-picker{height:70vh}
@media(max-width:900px){.app-shell{display:block}.sidebar{width:auto;height:auto;position:relative}.app-main{padding:12px}.topbar{display:block}}
