html,body{height:100%;overflow-x:hidden}
body{background:#f5f7fb;color:#1f2937;overflow-x:hidden}
a{text-decoration:none}
.navbar-brand{font-weight:600}
.brand{color:#1d4ed8}
.card{border-radius:12px;max-width:100%;overflow:hidden}

/* Prevent horizontal overflow on common layout wrappers */
.container, .container-fluid, .content-wrapper, .main-panel, .max-w-7xl {
  max-width:100%;
  overflow-x:hidden;
  padding-left: 1rem;
  padding-right: 1rem;
}

/* Additional container constraints */
.container {
  max-width: 1140px !important;
  margin-left: auto;
  margin-right: auto;
}

.max-w-7xl {
  max-width: 1280px !important;
  margin-left: auto;
  margin-right: auto;
}

/* Make embeds responsive */
img,video,iframe{max-width:100%;}

/* Legacy sidebar base (kept for compatibility) */
.sidebar{min-height:100vh;background:#0f172a}
.sidebar a{color:#cbd5e1}
.sidebar .active{background:#1e293b;color:#fff;border-radius:8px}

/* Elegant Sidebar overrides (white theme) */
.sidebar-shell{background:#ffffff}
.sidebar-elegant{padding-top:12px;background:#fff;border-right:1px solid #e5e7eb}
.sidebar-elegant .nav .nav-item{margin:2px 6px}
.sidebar-elegant .nav .nav-link{color:#111827;border-radius:10px;padding:10px 14px;transition:all .15s ease}
.sidebar-elegant .nav .nav-link .menu-icon{color:#6b7280;font-size:18px;width:22px;text-align:left}
.sidebar-elegant .nav .nav-link:hover{background:rgba(17,24,39,.04);color:#111827}
.sidebar-elegant .nav .nav-link.active{background:#f3e8ff;color:#111827;border-left:4px solid #8b5cf6;border-radius:10px}
.sidebar-elegant .nav .nav-link.active .menu-icon{color:#8b5cf6}
.sidebar-elegant .nav .menu-title{font-weight:700;letter-spacing:.3px;color:#6b7280}

/* Scrollbar subtle for sidebar */
.sidebar-elegant::-webkit-scrollbar{width:8px}
.sidebar-elegant::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:8px}

/* Dashboard card accents */
.card.bg-gradient-primary{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%)!important}
.card.bg-gradient-info{background:linear-gradient(135deg,#60a5fa 0%,#22d3ee 100%)!important}
.card.bg-gradient-success{background:linear-gradient(135deg,#34d399 0%,#10b981 100%)!important}
.card.text-white .text-white-50{color:rgba(255,255,255,.8)!important}

/* Tables & badges */
.table thead th{font-weight:600;color:#475569}
.badge.bg-secondary{text-transform:uppercase;background:#475569}

/* Utility spacing */
.mt-1{margin-top:.5rem!important}
.mt-2{margin-top:.75rem!important}
.mb-0{margin-bottom:0!important}
.mb-2{margin-bottom:.5rem!important}
.mb-3{margin-bottom:1rem!important}
.gap-2{gap:.5rem}

/* Card responsive fixes */
.card {
  word-wrap: break-word;
  box-sizing: border-box;
}

/* Ensure images in cards don't overflow */
.card img {
  max-width: 100%;
  height: auto;
}

/* Grid responsive fixes */
.row {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}

.col-md-6, .col-lg-4, .col-lg-3, .col-lg-9 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  box-sizing: border-box;
}

/* Prevent horizontal overflow on mobile */
@media (max-width: 768px) {
  .container, .container-fluid, .max-w-7xl {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
  
  .card {
    margin-bottom: 1rem;
  }
}

/* Fix for building images in detail page */
.building-image {
  max-width: 100% !important;
  height: auto;
  object-fit: cover;
}

/* Fix for iframe/maps embeds */
.ratio {
  max-width: 100%;
  overflow: hidden;
}

/* Ensure all images are responsive */
img {
  max-width: 100%;
  height: auto;
}

/* Fix for swiper/slider containers */
.swiper {
  max-width: 100% !important;
}

.hero-slider, .hero-slide {
  max-width: 100% !important;
  overflow: hidden;
}

/* Fix for grid and flex containers that might overflow */
.grid, .grid-cols-1, .grid-cols-2, .grid-cols-3, .grid-cols-4, .grid-cols-5, .grid-cols-6 {
  max-width: 100%;
  box-sizing: border-box;
}

/* Fix for flex containers */
.flex, .d-flex {
  max-width: 100%;
  box-sizing: border-box;
}

/* Ensure text doesn't cause overflow */
.text-break, .text-wrap {
  word-wrap: break-word !important;
  word-break: break-word !important;
}

/* Additional overflow prevention */
* {
  box-sizing: border-box;
}

/* Reduce spacing between header and content */
.max-w-7xl.mx-auto.px-4.mt-6 {
  margin-top: 1rem !important;
}

/* Reduce padding in sections */
section.py-10 {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

/* Reduce padding in cards */
.px-6 {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

/* Reduce section margins */
section {
  margin-bottom: 1rem !important;
}

/* Reduce card spacing */
.grid.md\:grid-cols-3.gap-6 {
  gap: 1.5rem !important;
}

/* Reduce hero slider height on mobile */
@media (max-width: 768px) {
  .hero-slider .swiper {
    height: 300px !important;
  }
}

/* Reduce spacing in Bootstrap pages */
.container.py-5 {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

/* Reduce card margins in Bootstrap */
.row.g-4 {
  --bs-gutter-y: 1.5rem !important;
}

/* Reduce navbar height */
.navbar {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

/* Reduce footer padding */
footer.py-4 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

/* Fix for any custom containers */
.content-wrapper, .main-panel, .page-body-wrapper {
  max-width: 100%;
  overflow-x: hidden;
}

/* Ensure header and footer don't overflow */
header, footer {
  max-width: 100%;
  overflow-x: hidden;
}

/* Fix body overflow */
body {
  max-width: 100vw;
  overflow-x: hidden;
}

/* Ensure all containers respect screen width */
.container, .container-fluid, .max-w-7xl {
  max-width: 100% !important;
  padding-left: 1rem;
  padding-right: 1rem;
}

/* Fix for sticky header */
.sticky.top-0 {
  left: 0;
  right: 0;
  width: 100%;
}

/* Remove excessive spacing between navbar and content */
.max-w-7xl.mx-auto.px-4 {
  margin-top: 0.5rem !important;
}

/* Compact spacing for all sections */
section {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

/* Reduce gap between navbar menu and cards */
header + div.max-w-7xl {
  margin-top: 0.5rem !important;
}

/* Ensure consistent spacing across pages */
main, .main-content, .content-area {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}
