:root{
  --sea:#006994;
  --forest:#2E8B57;
  --garrigue:#8DA77A;
  --sand:#F5DEB3;
  --accent:#4C9141;
}
html,body{height:100%;}
.site-nav{background: linear-gradient(90deg,var(--sea), var(--forest));}
.navbar-brand{font-weight:700}
.map-container{width:100%; border:1px solid #ddd; border-radius:6px; min-height:400px; position:relative}
.map-overlay-control{position:absolute; top:0; left:0; z-index:1000; background:rgba(255,255,255,0.95); padding:10px 15px; border-radius:0 0 6px 0; box-shadow:0 2px 6px rgba(0,0,0,0.12); pointer-events:auto; min-width:200px; pointer-events:all}
.map-overlay-control *{pointer-events:auto}
.map-click-shield{position:absolute; top:0; left:0; width:100%; height:80px; z-index:999; pointer-events:auto}
.map-controls{padding:6px}
body{background:linear-gradient(180deg,#fbfbfb,#f0f6f3); font-family: Inter, system-ui, Arial, sans-serif}
.btn-primary{background:var(--accent); border-color:var(--accent)}
.list-group-item{background:rgba(255,255,255,0.9)}
/* responsive tweaks */
@media(max-width:768px){
  .map-container{height:50vh}
}

/* Prevent table cells with long text from causing horizontal overflow
   but avoid breaking words in the middle when possible. */
table td, table th {
  overflow-wrap: break-word;
  word-wrap: break-word;
}

table th:nth-child(1),
table td:nth-child(1) {
  min-width: 180px;
}

table th:nth-child(2),
table td:nth-child(2) {
  min-width: 130px;
}

table th:nth-child(3),
table td:nth-child(3) {
  min-width: 140px;
}

.table-responsive { 
  overflow-x: auto; 
  width: 100%;
}
