/* =========================================================
   Waste Resource Map Uganda - Premium UI Theme
   Logo colours: green, orange, blue + clean government-grade neutrals
   ========================================================= */
:root{
  --brand-green:#72bf44;
  --brand-green-dark:#247a3a;
  --brand-green-soft:#eef9e9;
  --brand-orange:#f28c22;
  --brand-blue:#2c96cf;
  --brand-teal:#44b8ad;
  --ink:#13202b;
  --text:#334155;
  --muted:#667085;
  --line:#e3eaf0;
  --panel:#ffffff;
  --bg:#f5faf6;
  --dark:#1f222b;
  --radius:22px;
  --shadow-sm:0 8px 20px rgba(15,23,42,.07);
  --shadow:0 20px 50px rgba(15,23,42,.12);
  --shadow-lg:0 28px 80px rgba(15,23,42,.18);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{min-height:100%}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at 4% 8%, rgba(114,191,68,.11), transparent 28%),
    radial-gradient(circle at 94% 12%, rgba(44,150,207,.10), transparent 27%),
    linear-gradient(180deg,#fbfefb 0%,#f4faf6 45%,#f7f9fb 100%);
  font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  font-size:14px;
  line-height:1.55;
}
a{color:var(--brand-green-dark);text-decoration:none}
a:hover{color:#14532d}
img{max-width:100%;height:auto}
.fw-black{font-weight:900!important}.fw-800{font-weight:800!important}
.text-muted{color:var(--muted)!important}

/* ---------------------------------------------------------
   Small Bootstrap fallback helpers in case CDN is unavailable
   --------------------------------------------------------- */
.container{width:min(1140px,calc(100% - 30px));margin-right:auto;margin-left:auto}
.container-fluid{width:100%;margin-right:auto;margin-left:auto}
.row{display:flex;flex-wrap:wrap;margin-right:-.75rem;margin-left:-.75rem}
.row>*{padding-right:.75rem;padding-left:.75rem}
.g-2{gap:.5rem 0}.g-3{gap:1rem 0}.g-4{gap:1.5rem 0}
.col-12{flex:0 0 auto;width:100%}
.col-md-3,.col-md-4,.col-md-6,.col-md-8,.col-lg-4,.col-lg-5,.col-lg-7,.col-lg-8{width:100%}
@media(min-width:768px){.col-md-3{width:25%}.col-md-4{width:33.333%}.col-md-6{width:50%}.col-md-8{width:66.666%}}
@media(min-width:992px){.col-lg-4{width:33.333%}.col-lg-5{width:41.666%}.col-lg-7{width:58.333%}.col-lg-8{width:66.666%}.text-lg-end{text-align:right!important}}
.d-flex{display:flex!important}.d-grid{display:grid!important}.align-items-center{align-items:center!important}.align-items-lg-center{align-items:center!important}.justify-content-between{justify-content:space-between!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.w-100{width:100%!important}.small{font-size:.875em}.table-responsive{overflow-x:auto}.text-end{text-align:right!important}.text-md-end{text-align:left!important}@media(min-width:768px){.text-md-end{text-align:right!important}}

/* ---------------------------------------------------------
   Navigation / branding
   --------------------------------------------------------- */
.top-shell{position:relative;z-index:1040}
.navbar{
  min-height:76px;
  background:rgba(255,255,255,.95)!important;
  backdrop-filter:blur(18px);
}
.nav-shadow{
  box-shadow:0 12px 32px rgba(15,23,42,.08);
  border-bottom:1px solid rgba(226,232,240,.85)!important;
}
.navbar-brand{min-width:0}
.brand-logo-wrap{
  width:50px!important;
  height:50px!important;
  min-width:50px!important;
  max-width:50px!important;
  display:grid;
  place-items:center;
  padding:4px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(226,232,240,.9);
  box-shadow:0 10px 24px rgba(15,23,42,.10);
  overflow:hidden;
}
.brand-logo-wrap img,.site-logo{
  width:50px!important;
  max-width:50px!important;
  height:50px!important;
  max-height:50px!important;
  object-fit:contain!important;
  display:block;
}
.brand-title{
  display:block;
  margin-top:1px;
  font-size:20px;
  line-height:.95;
  font-weight:900;
  letter-spacing:-.95px;
  white-space:nowrap;
}
.brand-title span{color:var(--brand-green-dark)}
.brand-title b{color:var(--brand-orange);font-weight:900}
.brand-title em{color:var(--brand-blue);font-style:normal;font-weight:900}
.brand-text small{
  display:block;
  margin-top:5px;
  max-width:260px;
  color:#7b8794;
  font-size:11px;
  line-height:1.15;
}
.navbar .nav-link{
  color:#41515f;
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:999px;
  padding:.72rem .88rem!important;
  transition:.22s ease;
}
.navbar .nav-link.active,.navbar .nav-link:hover{
  color:var(--brand-green-dark);
  background:var(--brand-green-soft);
}
.btn,.form-control,.form-select{font-family:inherit}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid transparent;
  min-height:40px;
  padding:.65rem 1.05rem;
  font-weight:900;
  line-height:1.1;
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease, background .2s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-featured{
  color:#fff!important;
  background:linear-gradient(135deg,var(--brand-green),#3f9b31);
  box-shadow:0 14px 28px rgba(79,160,50,.24);
  text-transform:uppercase;
  letter-spacing:.045em;
  font-size:11px;
}
.btn-featured:hover{filter:brightness(.98);box-shadow:0 18px 36px rgba(79,160,50,.30)}
.btn-green{
  color:#fff!important;
  background:linear-gradient(135deg,var(--brand-green),#3f9b31);
  border-color:transparent;
  box-shadow:0 12px 22px rgba(79,160,50,.18);
  text-transform:uppercase;
  letter-spacing:.035em;
  font-size:12px;
}
.btn-green:hover{background:linear-gradient(135deg,#65b93c,#2d7f2e);box-shadow:0 16px 32px rgba(79,160,50,.25)}
.btn-soft{
  color:var(--brand-green-dark)!important;
  background:linear-gradient(180deg,#f5fff2,#eaf8e6);
  border-color:#d5ecd0;
  box-shadow:0 8px 18px rgba(36,122,58,.08);
}
.btn-orange{
  color:#fff!important;
  background:linear-gradient(135deg,var(--brand-orange),#e66d18);
  box-shadow:0 12px 24px rgba(242,140,34,.22);
}
.badge{border-radius:999px;font-weight:900;padding:.45em .7em}

/* ---------------------------------------------------------
   Map page
   --------------------------------------------------------- */
.map-layout{
  display:grid;
  grid-template-columns:370px minmax(0,1fr);
  min-height:calc(100vh - 76px);
}
.filter-panel{
  position:relative;
  z-index:810;
  padding:18px;
  background:linear-gradient(180deg,#fff 0%,#f8fbf9 100%);
  border-right:1px solid var(--line);
  box-shadow:12px 0 34px rgba(15,23,42,.08);
  overflow:auto;
}
.filter-panel:before{
  content:'';
  position:sticky;
  top:0;
  display:block;
  width:100%;
  height:4px;
  border-radius:999px;
  margin-bottom:16px;
  background:linear-gradient(90deg,var(--brand-green),var(--brand-orange),var(--brand-blue));
}
.filter-panel .panel-title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:0 0 18px;
  padding:14px 12px;
  border-radius:18px;
  color:var(--ink);
  background:#f8fbf9;
  border:1px solid #edf2f6;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.15em;
}
.filter-panel .panel-title:before{content:'⌕';font-size:15px;color:var(--brand-green-dark)}
.filter-label,.form-label{
  display:block;
  margin-bottom:.45rem;
  color:#405266;
  font-size:12px;
  font-weight:900;
}
.form-control,.form-select{
  width:100%;
  min-height:44px;
  border:1px solid #d7e1e9;
  border-radius:15px;
  padding:.72rem .88rem;
  color:#263443;
  background:#fff;
  box-shadow:0 1px 0 rgba(15,23,42,.03);
  outline:none;
}
textarea.form-control{border-radius:18px;min-height:110px}
.form-control:focus,.form-select:focus{
  border-color:var(--brand-green);
  box-shadow:0 0 0 .25rem rgba(114,191,68,.18);
}
.form-control::placeholder{color:#9aa8b6}
.filter-list{
  max-height:208px;
  overflow:auto;
  padding:10px;
  background:#fff;
  border:1px solid #dbe6ee;
  border-radius:18px;
  box-shadow:inset 0 1px 3px rgba(15,23,42,.04);
}
.filter-list::-webkit-scrollbar{width:9px}
.filter-list::-webkit-scrollbar-track{background:#eef3f5;border-radius:999px}
.filter-list::-webkit-scrollbar-thumb{background:#c8d6df;border-radius:999px}
.form-check{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:30px;
  padding:.25rem .35rem;
  border-radius:12px;
  transition:background .2s ease;
}
.form-check:hover{background:#f4faf4}
.form-check-input{
  width:16px;height:16px;margin:0;accent-color:var(--brand-green-dark);flex:0 0 auto;
}
.form-check-label{
  color:#526579;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
.map-stage{
  position:relative;
  min-height:680px;
  background:
    linear-gradient(135deg,rgba(44,150,207,.12),rgba(114,191,68,.10)),
    #e7eef0;
  overflow:hidden;
}
.map-stage:after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4), inset 0 18px 45px rgba(15,23,42,.06);
}
#map{
  width:100%;
  height:calc(100vh - 76px);
  min-height:680px;
}
.map-toolbar{
  position:absolute;
  top:18px;
  left:18px;
  right:18px;
  z-index:820;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  pointer-events:none;
}
.map-toolbar>*{pointer-events:auto}
.stat-pills{display:flex;flex-wrap:wrap;gap:10px}
.stat-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:42px;
  padding:10px 14px;
  border-radius:999px;
  color:#435367;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 14px 35px rgba(15,23,42,.13);
  backdrop-filter:blur(14px);
  font-size:12px;
  font-weight:900;
}
.stat-pill b{font-size:17px;color:var(--brand-green-dark)}
.leaflet-control-zoom a{border-radius:12px!important;margin:4px!important;box-shadow:var(--shadow-sm);border:1px solid #d8e1e7!important;color:#1f2937!important}
.leaflet-popup-content-wrapper{border-radius:20px!important;box-shadow:var(--shadow)!important}
.leaflet-popup-content{margin:16px!important}
.popup-card{min-width:250px;color:var(--text)}
.popup-card h6{margin:0 0 4px;color:var(--ink);font-size:16px;font-weight:900;letter-spacing:-.2px}
.popup-card p{line-height:1.55;color:#536273}
.popup-badge{
  display:inline-flex;
  align-items:center;
  margin:4px 4px 3px 0;
  padding:5px 8px;
  color:var(--brand-green-dark);
  background:#eff9eb;
  border:1px solid #daf0d2;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
}
.custom-marker span{transition:transform .2s ease, box-shadow .2s ease}
.custom-marker span:hover{transform:scale(1.1);box-shadow:0 10px 24px rgba(0,0,0,.30)!important}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(114,191,68,.22)!important}
.marker-cluster div{background:linear-gradient(135deg,var(--brand-green),#3f9b31)!important;color:#fff!important;font-weight:900!important}
.status-dot{width:10px;height:10px;border-radius:999px;display:inline-block;background:var(--brand-green);box-shadow:0 0 0 6px rgba(114,191,68,.14)}

/* ---------------------------------------------------------
   Public pages / cards / forms
   --------------------------------------------------------- */
.page-hero{
  position:relative;
  overflow:hidden;
  padding:62px 0;
  background:
    linear-gradient(115deg,rgba(255,255,255,.96),rgba(244,255,240,.92)),
    radial-gradient(circle at 8% 12%,rgba(114,191,68,.25),transparent 32%),
    radial-gradient(circle at 90% 30%,rgba(44,150,207,.22),transparent 35%);
  border-bottom:1px solid var(--line);
}
.page-hero:before{
  content:'';
  position:absolute;
  inset:0;
  opacity:.35;
  background-image:linear-gradient(rgba(36,122,58,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(36,122,58,.09) 1px,transparent 1px);
  background-size:34px 34px;
}
.page-hero .container{position:relative;z-index:1}
.eyebrow{
  color:var(--brand-green-dark);
  font-size:12px;
  font-weight:900;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.page-title{
  max-width:940px;
  margin:0;
  color:var(--ink);
  font-size:clamp(34px,4.6vw,62px);
  font-weight:900;
  letter-spacing:-2.4px;
  line-height:.98;
}
.page-title span{color:var(--brand-orange)}
.page-subtitle{
  max-width:820px;
  color:#617084;
  font-size:17px;
  line-height:1.75;
}
.content-card,.login-card,.market-card,.metric-card{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(226,234,240,.95);
  border-radius:28px;
  box-shadow:var(--shadow-sm);
}
.content-card{padding:28px}
.content-card:hover,.market-card:hover,.metric-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.content-card,.market-card,.metric-card{transition:transform .22s ease,box-shadow .22s ease}
.metric-card{
  position:relative;
  height:100%;
  overflow:hidden;
  padding:24px;
}
.metric-card:before{
  content:'';
  position:absolute;
  right:-44px;
  top:-44px;
  width:122px;
  height:122px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(114,191,68,.22),rgba(44,150,207,.14));
}
.metric-icon,.dataset-icon,.market-card .material-icon{
  width:52px;
  height:52px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-size:23px;
  color:var(--brand-green-dark);
  background:linear-gradient(180deg,#f4fff1,#e8f8e3);
  border:1px solid #dcefd6;
}
.metric-value{position:relative;margin:4px 0 0;color:var(--ink);font-size:38px;font-weight:900;letter-spacing:-1.4px}
.metric-label{position:relative;margin:0;color:#667085;font-weight:800}
.table-modern{width:100%;border-collapse:separate;border-spacing:0 12px}
.table-modern thead th{
  padding:0 14px 8px;
  border:0;
  color:#718096;
  font-size:11px;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.table-modern tbody tr{filter:drop-shadow(0 10px 18px rgba(15,23,42,.06))}
.table-modern tbody td{
  padding:16px 14px;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  vertical-align:middle;
}
.table-modern tbody td:first-child{border-left:1px solid var(--line);border-radius:18px 0 0 18px}
.table-modern tbody td:last-child{border-right:1px solid var(--line);border-radius:0 18px 18px 0}
.org-logo{width:50px;height:50px;border-radius:16px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:4px}
.org-logo-lg{width:94px;height:94px;border-radius:26px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:6px;box-shadow:var(--shadow-sm)}
.tag{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  margin:3px;
  color:var(--brand-green-dark);
  background:#f1faee;
  border:1px solid #d9ecd2;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
}
.form-shell{max-width:1080px;margin:auto;padding:38px 15px 64px}
.form-section-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:28px 0 18px;
  padding-bottom:14px;
  color:var(--ink);
  border-bottom:1px solid var(--line);
  font-size:22px;
  font-weight:900;
  letter-spacing:-.4px;
}
.form-section-title:before{content:'';width:12px;height:12px;border-radius:50%;background:var(--brand-green);box-shadow:0 0 0 6px rgba(114,191,68,.13)}
.big-input{min-height:48px}
#featureMap{height:360px;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-sm)}
.mini-note{color:#728093;font-size:12px;line-height:1.55}
.alert{padding:1rem 1.15rem;border-radius:18px}
.alert-success{color:#14532d;background:#ecfdf3;border:1px solid #bbf7d0}
.alert-danger{color:#7f1d1d;background:#fef2f2;border:1px solid #fecaca}
.input-group{display:flex}.input-group .form-control{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-text{display:flex;align-items:center;padding:.72rem .88rem;border:1px solid #d7e1e9;border-left:0;border-radius:0 15px 15px 0;background:#f8fafc;color:#64748b;font-weight:800}
.market-card{height:100%;padding:24px}.market-card .material-icon{color:var(--brand-orange);background:#fff6ed;border-color:#ffe3c6}
.dataset-icon{flex:0 0 auto}.chart-box{height:340px}

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */
.site-footer{
  position:relative;
  padding:32px 0;
  color:rgba(255,255,255,.82);
  background:linear-gradient(135deg,#20222a,#171a22 60%,#16251c);
  overflow:hidden;
}
.site-footer:before{content:'';position:absolute;inset:auto -10% -60% auto;width:420px;height:420px;border-radius:50%;background:rgba(114,191,68,.12)}
.site-footer .container{position:relative;z-index:1}
.footer-logo,.admin-logo-sm{
  width:50px!important;
  max-width:50px!important;
  height:50px!important;
  max-height:50px!important;
  object-fit:contain!important;
  border-radius:16px;
  background:#fff;
  padding:4px;
  border:1px solid rgba(255,255,255,.25);
}
.footer-link{
  display:inline-flex;
  margin:7px 0 7px 18px;
  color:rgba(255,255,255,.70);
  font-weight:900;
  font-size:13px;
}
.footer-link:hover{color:#fff}

/* ---------------------------------------------------------
   Admin
   --------------------------------------------------------- */
.admin-shell{min-height:calc(100vh - 76px);display:grid;grid-template-columns:292px minmax(0,1fr)}
.admin-sidebar{
  position:sticky;
  top:76px;
  height:calc(100vh - 76px);
  overflow:auto;
  padding:22px;
  color:#fff;
  background:
    radial-gradient(circle at 20% 0%,rgba(114,191,68,.22),transparent 32%),
    linear-gradient(180deg,#1f2933,#171c24);
  border-right:1px solid rgba(255,255,255,.08);
}
.admin-sidebar a{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
  padding:13px 14px;
  color:rgba(255,255,255,.74);
  border:1px solid transparent;
  border-radius:16px;
  font-weight:900;
}
.admin-sidebar a.active,.admin-sidebar a:hover{color:#fff;background:rgba(114,191,68,.18);border-color:rgba(114,191,68,.20)}
.admin-content{padding:30px;min-width:0}
.login-wrap{
  min-height:calc(100vh - 76px);
  display:grid;
  place-items:center;
  padding:45px 15px;
  background:
    radial-gradient(circle at 18% 12%,rgba(114,191,68,.24),transparent 34%),
    radial-gradient(circle at 82% 82%,rgba(44,150,207,.18),transparent 35%),
    #f7fbf6;
}
.login-card{width:min(460px,100%);padding:34px;box-shadow:var(--shadow)}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */
@media(max-width:991px){
  .navbar{min-height:auto}.brand-title{font-size:17px}.brand-text small{max-width:200px}
  .map-layout{grid-template-columns:1fr;min-height:auto}.filter-panel{position:relative;border-right:0;border-bottom:1px solid var(--line);max-height:none}.map-toolbar{position:relative;top:auto;left:auto;right:auto;display:block;padding:12px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line)}.map-toolbar .btn-featured{margin-top:10px;width:100%}#map{height:70vh;min-height:560px}.map-stage{min-height:560px}.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:relative;top:0;height:auto}.admin-content{padding:20px}.footer-link{margin-left:0;margin-right:16px}.chart-box{height:300px}
}
@media(max-width:575px){
  body{font-size:13px}.brand-logo-wrap,.brand-logo-wrap img,.site-logo{width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important}.brand-text small{display:none}.brand-title{font-size:15px;letter-spacing:-.6px}.filter-panel{padding:14px}.filter-panel:before{margin-bottom:12px}.stat-pills{display:grid;grid-template-columns:1fr;gap:8px}.stat-pill{width:100%;justify-content:space-between}.page-hero{padding:38px 0}.page-title{letter-spacing:-1.4px}.page-subtitle{font-size:15px}.content-card{padding:18px;border-radius:22px}.form-shell{padding-top:24px}.table-modern{border-spacing:0 10px}.table-modern tbody td{white-space:nowrap}.footer-logo,.admin-logo-sm{width:46px!important;height:46px!important}.btn{width:auto}.px-5{padding-left:1.5rem!important;padding-right:1.5rem!important}
}

/* =========================================================
   Green map stability + Uganda public-data UI patch
   ========================================================= */
:root{
  --brand-green:#1f9d55;
  --brand-green-dark:#166534;
  --brand-green-soft:#eafaf0;
  --brand-orange:#f08a22;
  --brand-blue:#1782bd;
  --bg:#f4fbf5;
}
body{
  background:
    radial-gradient(circle at 8% 10%, rgba(31,157,85,.14), transparent 30%),
    radial-gradient(circle at 93% 18%, rgba(23,130,189,.08), transparent 27%),
    linear-gradient(180deg,#fbfffc 0%,#f3fbf4 48%,#f7faf8 100%);
}
.navbar{border-top:4px solid var(--brand-green);}
.map-layout{background:#f4fbf5;}
.filter-panel{
  background:linear-gradient(180deg,#ffffff 0%,#f6fff8 100%);
  border-right:1px solid rgba(22,101,52,.16);
}
.filter-panel .panel-title{
  color:#10391f;
  background:linear-gradient(180deg,#f6fff6,#edfbed);
  border-color:#d8f1dc;
}
.filter-list{
  border-color:#d8f1dc;
  background:#fcfffc;
}
.form-control:focus,.form-select:focus{
  border-color:var(--brand-green)!important;
  box-shadow:0 0 0 .25rem rgba(31,157,85,.17)!important;
}
.map-stage{
  min-height:calc(100vh - 76px);
  background:
    radial-gradient(circle at 25% 20%, rgba(31,157,85,.20), transparent 30%),
    linear-gradient(135deg,#dff4e4,#edf8ef 45%,#e4f3ee);
}
#map{
  position:relative;
  z-index:1;
  width:100%!important;
  height:calc(100vh - 76px)!important;
  min-height:680px!important;
  display:block!important;
  background:#dceee4!important;
}
.leaflet-container{
  width:100%!important;
  height:100%!important;
  min-height:680px!important;
  font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif!important;
}
.map-toolbar{z-index:810;}
.stat-pill{
  border:1px solid rgba(31,157,85,.16);
  box-shadow:0 14px 35px rgba(22,101,52,.13);
}
.btn-green,.btn-featured{
  background:linear-gradient(135deg,#22a35a,#166534)!important;
  box-shadow:0 14px 30px rgba(31,157,85,.26)!important;
}
.btn-soft{
  color:#166534!important;
  background:linear-gradient(180deg,#f3fff6,#e6f8e9)!important;
  border-color:#ccefd4!important;
}
.custom-marker span{
  width:34px!important;
  height:34px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  border:3px solid #fff!important;
  box-shadow:0 10px 22px rgba(0,0,0,.25)!important;
  color:#fff!important;
  font-size:15px!important;
  transition:transform .2s ease, box-shadow .2s ease!important;
}
.custom-marker span:hover{transform:scale(1.12);box-shadow:0 16px 30px rgba(0,0,0,.32)!important;}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(31,157,85,.22)!important;}
.marker-cluster div{background:linear-gradient(135deg,#22a35a,#166534)!important;color:#fff!important;font-weight:900!important;}
.map-legend{
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:810;
  display:grid;
  gap:8px;
  min-width:245px;
  padding:14px 16px;
  color:#23402d;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(31,157,85,.18);
  border-radius:22px;
  box-shadow:0 18px 45px rgba(15,23,42,.16);
  backdrop-filter:blur(14px);
  font-size:12px;
  font-weight:800;
}
.map-legend strong{
  display:block;
  margin-bottom:2px;
  color:#10391f;
  font-size:13px;
  font-weight:900;
}
.map-legend span{display:flex;align-items:center;gap:8px;}
.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;border:2px solid #fff;box-shadow:0 0 0 2px rgba(15,23,42,.08);}
.legend-green{background:#1f9d55;}.legend-blue{background:#1782bd;}.legend-orange{background:#f08a22;}
.popup-card{min-width:270px;max-width:310px;}
.popup-card h6{color:#10391f;font-size:16px;line-height:1.2;}
.popup-card p{margin:.45rem 0 .6rem!important;color:#516070;line-height:1.55;}
.popup-subtitle{margin-bottom:.5rem;color:#5a6b78;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;}
.popup-line{display:flex;align-items:flex-start;gap:7px;margin:.35rem 0;color:#506172;font-size:12px;font-weight:700;}
.popup-line i{color:#1f9d55;margin-top:2px;}
.popup-link{display:inline-flex;align-items:center;gap:6px;margin:.35rem 0;color:#166534!important;font-size:12px;font-weight:900;}
.map-empty-state{
  width:100%;height:100%;min-height:680px;display:grid;place-items:center;text-align:center;padding:40px;color:#23402d;
  background:linear-gradient(135deg,#e6f8e9,#f8fffa);
}
.map-empty-state>div,.map-empty-state h3,.map-empty-state p,.map-empty-state small{max-width:560px;}
.map-empty-icon{width:82px;height:82px;border-radius:28px;margin:0 auto 14px;display:grid;place-items:center;background:#fff;border:1px solid #d8f1dc;box-shadow:0 18px 42px rgba(31,157,85,.14);font-size:34px;color:#1f9d55;}
.map-empty-state h3{margin:0 0 8px;font-size:26px;font-weight:900;color:#10391f;}
.map-empty-state p{margin:0 auto 8px;color:#516070;font-size:15px;}
.map-empty-state small{display:block;margin:auto;color:#6b7a70;}
.site-logo,.brand-logo-wrap img,.footer-logo,.admin-logo-sm{
  width:50px!important;max-width:50px!important;height:50px!important;max-height:50px!important;object-fit:contain!important;
}
.brand-logo-wrap{width:50px!important;height:50px!important;min-width:50px!important;max-width:50px!important;}
@media(max-width:991.98px){
  .map-legend{position:relative;right:auto;bottom:auto;margin:12px;min-width:0;}
  #map,.leaflet-container{height:72vh!important;min-height:560px!important;}
}
.offline-map-card{width:100%;height:100%;min-height:680px;padding:18px;background:linear-gradient(135deg,#e7f8eb,#f8fff9);display:flex;flex-direction:column;gap:12px;}
.offline-map-note{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;padding:12px 16px;background:#fff;border:1px solid #d8f1dc;border-radius:18px;box-shadow:0 12px 30px rgba(31,157,85,.10);color:#41614c;font-size:12px;font-weight:800;}
.offline-map-note strong{color:#10391f;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;}
.uganda-svg-map{flex:1;width:100%;min-height:590px;border-radius:28px;background:#ecf9ef;border:1px solid #d8f1dc;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 20px 45px rgba(22,101,52,.12);}
.svg-city{font-size:18px;font-weight:900;fill:#335a3e;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;}
.svg-marker circle{filter:drop-shadow(0 6px 8px rgba(15,23,42,.23));transition:transform .2s ease;}
.svg-marker:hover circle{transform:scale(1.2);}


/* =========================================================
   FINAL GREEN PUBLIC-SOURCE BUILD OVERRIDES
   ========================================================= */
:root{
  --brand-green:#159447;
  --brand-green-dark:#0f6b35;
  --brand-green-soft:#e8f8ee;
  --brand-orange:#f28b21;
  --brand-blue:#1a95cf;
  --bg:#f5fbf7;
}
body{background:linear-gradient(180deg,#f8fff9 0%,#eef8f0 55%,#f8fafc 100%);}
.navbar{border-top:5px solid var(--brand-green);min-height:74px;}
.nav-shadow{box-shadow:0 8px 26px rgba(8,77,35,.12)!important;}
.brand-logo-wrap,.brand-logo-wrap img,.site-logo,.footer-logo,.admin-logo-sm{width:50px!important;height:50px!important;min-width:50px!important;max-width:50px!important;object-fit:contain!important;}
.brand-logo-wrap{border-radius:14px!important;padding:3px!important;}
.navbar .nav-link.active,.navbar .nav-link:hover{background:#e8f8ee;color:#0f6b35!important;}
.map-layout{grid-template-columns:360px minmax(0,1fr);background:#f4fbf5;}
.filter-panel{background:linear-gradient(180deg,#ffffff,#f1faf4);border-right:1px solid #d7eadc;}
.filter-panel .panel-title{background:#e8f8ee;border-color:#cbe8d4;color:#0f6b35;}
.btn-green,.btn-featured{background:linear-gradient(135deg,#159447,#6fbd32)!important;box-shadow:0 16px 34px rgba(21,148,71,.24)!important;}
.btn-soft{background:#effaf3!important;border-color:#cfeadc!important;color:#0f6b35!important;}
#map,.leaflet-container{height:calc(100vh - 74px)!important;min-height:690px!important;background:#e9f7ed!important;z-index:1;}
.map-stage{background:#e9f7ed!important;}
.custom-marker span{background:#159447;box-shadow:0 8px 22px rgba(21,148,71,.38)!important;}
.source-panel{padding:14px;border-radius:18px;background:#ffffff;border:1px solid #cfeadc;box-shadow:0 8px 24px rgba(15,107,53,.07);}
.source-panel strong{display:block;color:#0f6b35;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;}
.source-panel a{display:block;font-size:12px;font-weight:800;color:#385248;padding:6px 0;border-top:1px dashed #e0eee4;}
.source-panel a:first-of-type{border-top:0;}
.popup-line{display:flex;gap:7px;align-items:flex-start;margin:6px 0;color:#405266;font-size:12px;font-weight:700;}
.popup-line i{color:#159447;}
.popup-link{display:inline-flex;gap:6px;align-items:center;font-weight:900;margin-top:4px;}
.offline-map-card{height:100%;min-height:690px;background:#e9f7ed;}
.offline-map-note{position:absolute;z-index:2;left:22px;bottom:22px;display:grid;gap:3px;padding:13px 16px;border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 15px 35px rgba(8,77,35,.12);max-width:360px;}
.uganda-svg-map{width:100%;height:100%;min-height:690px;display:block;}
.svg-city{font-size:13px;font-weight:900;fill:#0f5132;paint-order:stroke;stroke:#fff;stroke-width:5px;}
.site-footer{background:linear-gradient(135deg,#0b3d22,#0f6b35)!important;}
@media(max-width:991.98px){.map-layout{grid-template-columns:1fr;}#map,.leaflet-container,.offline-map-card,.uganda-svg-map{height:72vh!important;min-height:560px!important;}.map-toolbar{position:relative;top:auto;left:auto;right:auto}.filter-panel{border-right:0;border-bottom:1px solid #d7eadc}.brand-text small{display:none;}}
@media(max-width:576px){.brand-logo-wrap,.brand-logo-wrap img,.site-logo,.footer-logo,.admin-logo-sm{width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;}.brand-title{font-size:15px!important}.map-toolbar .btn-featured{display:none}.filter-panel{padding:12px}.stat-pills{display:grid;width:100%;}}


/* =========================================================
   FINAL PROFESSIONAL UI POLISH + COPYRIGHT-ONLY FOOTER
   ========================================================= */
:root{
  --brand-green:#2f6f3e;
  --brand-green-dark:#173d29;
  --brand-green-soft:#eef6f0;
  --brand-orange:#b86f2d;
  --brand-blue:#306f8f;
  --ink:#17251d;
  --text:#35453b;
  --muted:#6b776f;
  --line:#dfe8e2;
  --bg:#f7faf7;
  --shadow-sm:0 8px 22px rgba(23,61,41,.07);
  --shadow:0 22px 55px rgba(23,61,41,.12);
}
body{
  color:var(--text);
  background:#f7faf7;
  font-family:'Manrope',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif!important;
  font-size:14.5px;
  letter-spacing:-.01em;
}
.leaflet-container{font-family:'Manrope',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif!important;}
.navbar{
  border-top:0!important;
  min-height:72px;
  background:rgba(255,255,255,.96)!important;
}
.nav-shadow{
  border-bottom:1px solid rgba(47,111,62,.13)!important;
  box-shadow:0 10px 28px rgba(23,61,41,.08)!important;
}
.brand-title{
  color:#183323;
  font-weight:800;
  letter-spacing:-.8px;
}
.brand-title b{color:#2f6f3e!important;}
.brand-title em{color:#306f8f!important;}
.brand-text small{color:#7a867e;font-size:11px;letter-spacing:.01em;}
.navbar .nav-link{
  color:#25382d!important;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.navbar .nav-link.active,.navbar .nav-link:hover{
  color:#173d29!important;
  background:#eef6f0!important;
}
.btn-green,.btn-featured{
  background:#2f6f3e!important;
  box-shadow:0 12px 26px rgba(47,111,62,.20)!important;
  border:1px solid rgba(255,255,255,.18)!important;
}
.btn-green:hover,.btn-featured:hover{
  background:#245832!important;
  transform:translateY(-1px);
}
.filter-panel{background:#ffffff!important;border-right:1px solid #dfe8e2!important;}
.filter-panel .panel-title{background:#eef6f0!important;border-color:#d9e7dd!important;color:#173d29!important;}
.map-stage,#map,.leaflet-container{background:#edf4ef!important;}
.custom-marker span{background:#2f6f3e!important;box-shadow:0 9px 22px rgba(23,61,41,.28)!important;}
.marker-cluster div{background:#2f6f3e!important;color:#fff!important;}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(47,111,62,.22)!important;}
.map-legend{border-color:#d9e7dd!important;color:#2f3e34!important;}
.map-legend strong,.popup-card h6,.source-panel strong{color:#173d29!important;}
.popup-line i,.popup-link{color:#2f6f3e!important;}
.site-footer.site-footer-copyright-only{
  margin-top:0;
  padding:18px 0;
  color:#dce7df;
  background:#102019!important;
  border-top:1px solid rgba(47,111,62,.45);
  overflow:hidden;
}
.site-footer.site-footer-copyright-only:before{display:none!important;}
.site-footer.site-footer-copyright-only .container{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
}
.footer-copyright{
  color:#dce7df;
  text-align:center;
  font-family:'Manrope',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.01em;
}
@media(max-width:576px){
  body{font-size:13.5px;}
  .site-footer.site-footer-copyright-only{padding:16px 0;}
  .footer-copyright{font-size:12.5px;line-height:1.5;}
}
