/* Simple two-column layout: map + sidebar */
:root{--sidebar-width:320px}
*{box-sizing:border-box;font-family:Segoe UI,Roboto,Arial,sans-serif}
body{margin:0;height:100vh;display:flex;flex-direction:column}
header{padding:12px 18px;background:#0b5; color:#013;}
.subtitle{margin:6px 0 0;font-size:0.95rem;color:rgba(1,1,1,0.6)}
main{flex:1;display:grid;grid-template-columns:1fr var(--sidebar-width);gap:12px;padding:12px;overflow:hidden;}
#map{width:100%;height:100%;background:#eee;border:1px solid #ccc}
#info{padding:12px;background:#fff;border:1px solid #ddd;overflow:auto;display:flex;flex-direction:column;}
button{background:#0b5;color:#fff;border:0;padding:8px 12px;border-radius:6px;cursor:pointer;margin:4px 2px;}
button:hover{background:#0a4;}
input[type="text"]{
  width:100%;
  padding:8px;
  border:1px solid #ddd;
  border-radius:4px;
  margin:8px 0;
  font-size:0.9rem;
}
@media(max-width:900px){main{grid-template-columns:1fr}#info{order:2}}

/* Leaflet container full height */
.leaflet-container{height:100%}

/* Navigation and info styles */
#breadcrumb{
  font-size:0.9rem;
  padding:8px 0;
  border-bottom:1px solid #ddd;
  margin-bottom:8px;
}
#breadcrumb a{
  color:#0b5;
  text-decoration:none;
}
#breadcrumb a:hover{
  text-decoration:underline;
}
.map-stats{
  font-size:0.85rem;
  color:#666;
  margin-bottom:12px;
}
.navigation-controls{
  display:flex;
  gap:8px;
  margin-bottom:12px;
  flex-wrap:wrap;
}
.navigation-controls .toggle{
  display:flex;align-items:center;gap:6px;background:#f7f7f7;border:1px solid #ddd;padding:6px 8px;border-radius:6px;color:#333
}
.navigation-controls .toggle input{margin:0}
.scrollable-list{
  max-height:300px;
  overflow-y:auto;
  border:1px solid #eee;
  padding:8px;
  margin:8px 0;
}
.scrollable-list ul{
  list-style:none;
  padding:0;
  margin:0;
}
.scrollable-list li{
  padding:4px 0;
}
.scrollable-list a{
  color:#0b5;
  text-decoration:none;
  font-size:0.9rem;
}
.scrollable-list a:hover{
  text-decoration:underline;
}
.instructions{
  font-size:0.85rem;
  line-height:1.6;
  color:#555;
}
.instructions li{
  margin:6px 0;
}

/* Collapsible How-To block */
.howto h3{
  display:flex;align-items:center;justify-content:space-between;margin:12px 0 6px
}
.howto-toggle{
  background:#f2f2f2;color:#013;border:1px solid #ddd;border-radius:4px;padding:2px 8px;font-size:0.9rem;cursor:pointer
}
.howto.collapsed .instructions{display:none}

/* Custom marker styles */
.map-label{
  background:rgba(255,255,255,0.9);
  border:2px solid #0b5;
  border-radius:6px;
  padding:6px 10px;
  font-size:0.8rem;
  font-weight:600;
  text-align:center;
  cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,0.25);
  transition:all 0.2s;
}
.map-label:hover{
  background:rgba(255,255,255,1);
  transform:scale(1.05);
  box-shadow:0 3px 8px rgba(0,0,0,0.35);
}
.map-label-text{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#013;
}
.map-boundary{
  cursor:pointer;
  transition:fill-opacity 0.2s;
}
.map-boundary:hover{
  fill-opacity:0.1 !important;
  fill:#0b5 !important;
}
.interior-marker{
  text-align:center;
  cursor:pointer;
  transition:transform 0.2s;
}
.interior-marker:hover{
  transform:scale(1.3);
}
.marker-icon{
  font-size:28px;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,0.4));
  background:rgba(255,255,255,0.9);
  border-radius:50%;
  padding:4px;
}
.floor-marker{
  text-align:center;
  cursor:pointer;
  font-size:24px;
  transition:transform 0.2s;
}
.floor-marker:hover{
  transform:scale(1.2);
}
.marker-popup{
  text-align:center;
}
.marker-popup button{
  margin-top:8px;
  width:100%;
}

/* Drag handle for editing layout */
.drag-handle{
  width:14px;height:14px;background:#0b5;border:2px solid #fff;border-radius:3px;box-shadow:0 2px 4px rgba(0,0,0,.3)
}

/* Leaflet popup customization */
.leaflet-popup-content-wrapper{
  border-radius:8px;
  box-shadow:0 3px 12px rgba(0,0,0,0.3);
}
.leaflet-popup-content{
  margin:12px;
  font-size:0.9rem;
}
