﻿* { margin: 0; padding: 0; box-sizing: border-box; }
body {  overflow: hidden; }
.loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); background: rgba(255,255,255,0.9); padding: 20px; border-radius: 15px; z-index: 1000; box-shadow: 0 2px 10px rgba(0,0,0,0.2); }
.nbapp{display:flex;flex-direction:column;height:100vh; flex:1;overflow:hidden;}
.map-container { flex:1;position:relative;}
#map { height: 100%; width: 100%; background: #a7804b; z-index: 20;}
.leaflet-tile-container { line-height: 0; font-size: 0; /* 关键：消除瓦片容器的间隙 */ }
/* 高DPI显示修复 - 关键CSS */
.leaflet-tile-container img { image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor; }
/* 修复瓦片之间的缝隙 */
.leaflet-tile {
  border:none;margin:0;padding:0;position:absolute;top:0;left:0;border:none !important;outline:none !important;/* 防止瓦片边缘模糊导致的白线 */
  image-rendering:pixelated;/* 修复高DPI下的计算偏差 */
  transform:translateZ(0);
}
/* 针对浮点数缩放的特殊处理 */
.leaflet-map-pane { will-change: transform; /* 避免地图容器自身的渲染偏差 */ }
/* 针对高DPI设备的特殊处理 */
@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi) {
  .leaflet-tile-container { transform: translateZ(0); /* 启用硬件加速 */ }
  .leaflet-tile { outline: 0.5px solid transparent; /* 防止亚像素渲染间隙 */ }
}
/* 楼层切换 */
.floor-selector { position:fixed; top:10px;left:10px; width: calc(100vw - 20px); display: flex;justify-content: space-between; border-radius: 15px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1);  z-index: 100;}
.floor-btn { flex: 1; padding: 10px 20px; text-align: center; background-color: #dac3a4; border: none; cursor: pointer; transition: all 0.3s;}
.floor-btn.active { background-color: #79211f; color: white; }
.floor-btn:hover:not(.active) { background-color: #c5cae9; }
/* 路线规划及显示 */
.control-select {display: flex; flex-direction: row; justify-content: space-between;  position: fixed; top:55px; left: 10px; z-index: 80;width: calc(100vw - 20px);}
.control-select .menu{background-color: #dac3a4; border-radius: 15px;min-width: 37px; min-height: 37px; }
.control-select img{width: 29px; height: 29px;margin:4px 0 0 4px;}
select { width: 100%; padding: 10px;border: 1px solid #dac3a4; border-radius: 15px; margin-left: 10px; background-color: #dac3a4; }
.route-info { background-color: rgba(218, 195, 164, .7); padding: 15px; border-radius: 15px;  display: none; position: fixed;bottom:10px;left:0; width: calc(100vw - 20px);margin-left: 10px; z-index: 80;}
.route-info h3 { margin-bottom: 10px; color: #79211f; }
/* 展区列表 */
.exhibit-section {width:calc(100vw - 20px); height: calc(100vh - 110px);  position: fixed; top: 100px; left: -100%;z-index: 50; transition: all 0.3s; background-color: rgba(218, 195, 164, 1);border-radius:15px;}
.exhibit-section h2 { font-size: 1.2rem; margin-bottom: 15px; color: #000000; border-bottom: 1px solid #a7804b; line-height:3rem;padding-left: 1rem;}
.exhibit-list { max-height:  calc(100vh - 190px); overflow-y: auto; }
.exhibit-item { padding: 10px; border-bottom: 1px solid #c19e6f; cursor: pointer; transition: background-color 0.2s; }
.exhibit-item:hover { background-color: #dac3a4; }
.exhibit-item h4 { margin-bottom: 5px; color: #000000; }
.exhibit-item p { font-size: 0.9rem; color: #666; }
/* 自定义弹窗样式 */
.exhibit-popup { max-width: 100%; }
.exhibit-popup img { width: 100%; border-radius: 15px; margin-bottom: 10px; max-height: 120px;}
.exhibit-popup h3 { color: #79211f; margin-bottom: -10px;}
.exhibit-popup p { line-height: 1.5; }
.route-marker { background-color: #ff5722; border: 2px solid white; border-radius: 50%; width: 26px !important; height: 26px !important; box-shadow: 0 2px 5px rgba(0,0,0,0.3);  line-height: 140%; font-size: 16px;}

.close_route {position: absolute;  width:30px;height:30px;  right:10px;top:10px;  border-radius:50%;border:2px solid #79211f;  transition:all 0.2s ease;
  background-image: url('../image/close.png'); background-size: 100% 100%;
}
