/* V103.1: Compact Density & Readability Refinement
   Purpose: keep the premium Mt Kenya Hub feel while showing more content at 100% browser zoom. */
:root{
  --mkh-radius:22px;
  --mkh-radius-sm:14px;
  --mkh-sidebar:252px;
  --mkh-content:1320px;
  --mkh-shadow:0 14px 42px rgba(4,34,16,.075);
  --mkh-shadow-strong:0 20px 60px rgba(0,45,16,.14);
}
html{font-size:15px!important;}
body{font-size:14px!important;line-height:1.55!important;letter-spacing:-.006em!important;}
.container,.container-lg,.container-xl,.container-xxl{max-width:1280px!important;}
.btn{padding:.58rem .94rem!important;font-size:.92rem!important;line-height:1.25!important;}
.btn-lg{padding:.68rem 1.05rem!important;font-size:1rem!important;}
.btn-sm{padding:.36rem .68rem!important;font-size:.82rem!important;}
.form-control,.form-select,textarea,input[type=text],input[type=email],input[type=password],input[type=date],input[type=datetime-local],input[type=url],input[type=number],select{min-height:42px!important;padding:.62rem .78rem!important;border-radius:12px!important;font-size:.92rem!important;}
.form-label{font-size:.9rem!important;margin-bottom:.32rem!important;}
.badge-soft,.metric-pill{padding:.28rem .58rem!important;font-size:.68rem!important;}
.section-kicker,.hero-kicker,.internal-kicker,.m89-kicker{font-size:.66rem!important;letter-spacing:.14em!important;gap:.5rem!important;}
.section-kicker:before,.hero-kicker:before,.internal-kicker:before,.m89-kicker:before{width:26px!important;}
.section-title{font-size:clamp(1.65rem,2.6vw,2.9rem)!important;line-height:1!important;letter-spacing:-.045em!important;}
.section-copy,.small-muted,.text-muted{line-height:1.55!important;}
.section-space{padding:56px 0!important;}
.content-card,.feature-card,.dash-card,.m89-card,.partner-panel,.dashboard-quick-card,.member-card,.empty-state,.card{border-radius:20px!important;}
.content-card,.dash-card,.m89-card,.partner-panel{padding:1.05rem!important;}
/* Public website density */
.navbar,.site-navbar,.public-navbar{min-height:62px!important;}
.navbar-brand img,.site-logo,.public-logo{max-height:34px!important;}
.navbar .nav-link{font-size:.9rem!important;padding:.55rem .65rem!important;}
.hero-shell{min-height:min(610px,72vh)!important;}
.hero-shell:before{inset:0 0 0 42%!important;background-position:center!important;}
.hero-shell:after{width:360px!important;height:360px!important;right:-110px!important;bottom:-150px!important;}
.hero-shell .container{padding-top:2rem!important;padding-bottom:2rem!important;}
.hero-title{font-size:clamp(2.55rem,5.1vw,5.35rem)!important;line-height:.94!important;letter-spacing:-.065em!important;max-width:720px!important;}
.hero-copy{font-size:1rem!important;line-height:1.58!important;max-width:650px!important;}
.hero-stat-grid{margin-top:2.1rem!important;border-radius:18px!important;}
.hero-stat-card{padding:.9rem .88rem!important;min-height:72px!important;}
.hero-stat-card strong{font-size:1.25rem!important;}
.hero-stat-card span{font-size:.72rem!important;margin-top:.22rem!important;}
.impact-strip{margin-top:-18px!important;}
.impact-card{border-radius:24px!important;}
.impact-item{border-radius:16px!important;padding:.82rem!important;}
.impact-item strong{font-size:1.25rem!important;}
.impact-item span{font-size:.76rem!important;line-height:1.35!important;}
.program-thumb{height:160px!important;border-radius:16px!important;}
.feature-card{padding:1rem!important;}
.feature-card h5{font-size:1rem!important;line-height:1.25!important;}
.partner-mosaic-card{min-height:86px!important;border-radius:18px!important;}
.why-mkh-redesign,.innovation-week-premium{border-radius:26px!important;padding:30px!important;}
.why-lead{font-size:.96rem!important;line-height:1.6!important;}
.why-point,.why-impact-card,.why-mini-metric,.week-stat{border-radius:16px!important;padding:.78rem!important;}
/* Shared app shell density */
.portal-shell>.row,.admin-shell>.row,.partner-app-shell>.row{grid-template-columns:var(--mkh-sidebar) minmax(0,1fr)!important;}
.portal-sidebar,.admin-sidebar{padding:24px 18px!important;width:var(--mkh-sidebar)!important;}
.portal-logo,.admin-logo{max-width:108px!important;max-height:46px!important;}
.portal-sidebar p,.admin-sidebar p{font-size:.9rem!important;line-height:1.45!important;}
.side-nav{gap:.26rem!important;}
.side-nav a,.admin-sidebar nav a,.portal-sidebar nav a{padding:.58rem .72rem!important;border-radius:12px!important;font-size:.88rem!important;gap:.58rem!important;line-height:1.18!important;}
.side-dot{width:10px!important;height:10px!important;min-width:10px!important;}
.admin-sidebar h6,.portal-sidebar h6,.side-group-title{font-size:.68rem!important;letter-spacing:.13em!important;margin:1rem 0 .45rem!important;}
.dashboard-topbar,.m89-wrap,.portal-page-shell,.partner-main,.admin-shell main>.p-4,.portal-shell main>.p-4{padding:26px 34px!important;max-width:1320px!important;margin:0 auto!important;}
.dashboard-topbar h1,.partner-topbar h1,.partner-title h1,.admin-shell h1,.portal-shell h1{font-size:clamp(1.7rem,2.4vw,3rem)!important;line-height:1.02!important;letter-spacing:-.045em!important;}
.dashboard-topbar p,.partner-subtitle,.admin-shell .lead,.portal-shell .lead{font-size:.98rem!important;line-height:1.5!important;}
.alert{padding:.65rem .9rem!important;border-radius:14px!important;font-size:.92rem!important;margin-bottom:1rem!important;}
.m89-hero,.dashboard-hero-premium,.partner-hero-card{border-radius:26px!important;padding:28px!important;}
.m89-title{font-size:clamp(2rem,3.2vw,4rem)!important;line-height:.96!important;letter-spacing:-.055em!important;}
.dashboard-hero-premium h2{font-size:clamp(1.9rem,3vw,3.75rem)!important;line-height:.96!important;letter-spacing:-.055em!important;}
.dashboard-hero-premium p,.m89-copy{font-size:1rem!important;line-height:1.55!important;}
.dashboard-note-strip{gap:.45rem!important;}
.dashboard-note-pill{font-size:.72rem!important;padding:.36rem .62rem!important;}
.m89-glass{border-radius:18px!important;padding:.82rem!important;}
.v90-hero-grid{gap:18px!important;}
.m89-mini-grid,.v90-metric-grid,.dashboard-quick-grid,.partner-stat-grid,.partner-hero-metrics{gap:.8rem!important;}
.m89-mini,.m89-stat,.premium-metric,.dashboard-quick-card{border-radius:18px!important;padding:.92rem!important;min-height:auto!important;}
.m89-mini strong,.m89-stat strong,.premium-metric .value,.value{font-size:clamp(1.25rem,1.8vw,1.9rem)!important;letter-spacing:-.04em!important;}
.m89-mini span,.m89-stat span,.premium-metric .label{font-size:.64rem!important;letter-spacing:.1em!important;}
.m89-mini small,.m89-stat em,.premium-metric .subtext{font-size:.78rem!important;line-height:1.35!important;}
.m89-toolbar{margin-bottom:.85rem!important;}
.m89-heading{font-size:1.35rem!important;line-height:1.12!important;}
.v90-action-grid,.dashboard-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
.m89-action,.dashboard-quick-card{border-radius:18px!important;padding:.9rem!important;min-height:100px!important;}
.m89-action strong,.dashboard-quick-card strong{font-size:.98rem!important;line-height:1.22!important;}
.m89-action small,.dashboard-quick-card span{font-size:.82rem!important;line-height:1.4!important;}
.chart-shell{padding:1rem!important;}
.table td,.table th{padding:.68rem!important;font-size:.88rem!important;}
.table thead th,.table-lite thead th{font-size:.66rem!important;letter-spacing:.08em!important;}
.dashboard-list-card{border-radius:14px!important;padding:.78rem!important;margin-bottom:.55rem!important;}
.filter-shell{border-radius:20px!important;padding:.75rem!important;}
.internal-hero{border-radius:22px!important;padding:22px!important;}
.admin-shell .page-header,.portal-shell .page-header{border-radius:20px!important;padding:1.05rem!important;}
/* Partner density */
.partner-topbar{margin-bottom:18px!important;}
.partner-title h1,.partner-topbar h1{font-size:clamp(1.75rem,2.6vw,3.25rem)!important;line-height:1!important;letter-spacing:-.05em!important;}
.partner-subtitle{font-size:.96rem!important;line-height:1.5!important;}
.partner-hero-metrics div,.partner-stat-card{border-radius:18px!important;padding:.9rem!important;}
.partner-hero-metrics strong,.partner-stat-card strong{font-size:1.45rem!important;}
.partner-dashboard-grid,.partner-detail-grid{gap:1rem!important;}
.partner-panel{padding:1rem!important;}
.partner-panel h3,.partner-panel h4{font-size:1.2rem!important;line-height:1.18!important;}
.partner-programs-layout{grid-template-columns:320px minmax(0,1fr)!important;gap:1rem!important;}
.partner-program-selector{border-radius:20px!important;padding:1rem!important;}
.partner-selector-card{border-radius:15px!important;margin-bottom:.55rem!important;}
.partner-activity-list a,.partner-person-row,.partner-list-compact div{border-radius:14px!important;padding:.75rem!important;}
/* Reduce vertical gaps created by Bootstrap utility classes in dashboards */
.portal-shell .mb-5,.admin-shell .mb-5,.partner-app-shell .mb-5{margin-bottom:2rem!important;}
.portal-shell .mb-4,.admin-shell .mb-4,.partner-app-shell .mb-4{margin-bottom:1.15rem!important;}
.portal-shell .g-4,.admin-shell .g-4,.partner-app-shell .g-4{--bs-gutter-x:1rem!important;--bs-gutter-y:1rem!important;}
.portal-shell .g-3,.admin-shell .g-3,.partner-app-shell .g-3{--bs-gutter-x:.8rem!important;--bs-gutter-y:.8rem!important;}
/* Keep readable at laptop sizes */
@media(max-width:1399px){
  :root{--mkh-sidebar:236px;}
  .dashboard-topbar,.m89-wrap,.portal-page-shell,.partner-main,.admin-shell main>.p-4,.portal-shell main>.p-4{padding:22px 28px!important;}
  .v90-action-grid,.dashboard-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .hero-title{font-size:clamp(2.3rem,4.5vw,4.8rem)!important;}
}
@media(max-width:1199.98px){
  .portal-shell>.row,.admin-shell>.row,.partner-app-shell>.row{display:block!important;}
  .portal-sidebar,.admin-sidebar{width:100%!important;padding:18px!important;}
  .dashboard-topbar,.m89-wrap,.portal-page-shell,.partner-main,.admin-shell main>.p-4,.portal-shell main>.p-4{padding:20px!important;}
  .m89-title,.dashboard-hero-premium h2{font-size:clamp(1.8rem,5vw,3rem)!important;}
  .hero-shell:before{inset:38% 0 0 0!important;opacity:.45!important;}
}
@media(max-width:767.98px){
  html{font-size:14px!important;}
  body{font-size:13.5px!important;}
  .hero-title{font-size:clamp(2.35rem,13vw,3.9rem)!important;}
  .hero-shell{min-height:auto!important;}
  .hero-stat-grid,.v90-action-grid,.dashboard-quick-grid,.m89-mini-grid,.v90-metric-grid,.partner-stat-grid,.partner-hero-metrics{grid-template-columns:1fr!important;}
  .m89-hero,.dashboard-hero-premium,.partner-hero-card{padding:22px!important;border-radius:22px!important;}
  .table{min-width:680px!important;}
}
