:root{--accent-color:#95e44a;--accent-color-light:#cfebb5}body{margin:0;display:flex;flex-direction:column;height:100vh;height:var(--vh,100vh);font-family:"Segoe UI",Roboto,Calibri,-apple-system,BlinkMacSystemFont,"PT Sans",Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}#header{height:50px;background:#06142a;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}#map{background:#eee;display:none;flex:1}#map:focus{outline:0}#main-wrapper{display:flex;flex:1;height:calc(var(--vh,100vh) - 50px)}#list-vertical{background-color:#eee;overflow-y:auto;width:300px;flex-shrink:0;display:flex;flex-direction:column}#search-container{display:flex;align-items:center;background:#fff;padding:5px;border-radius:15px;max-width:700px;position:relative;height:30px}.search-input{border:none;outline:0;flex-grow:1;padding:5px 35px 5px 10px;border-radius:15px;min-width:20px}.clear-button,.filter-button,.geo-button,.geo-button-pulse,.search-button{background:0 0;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#555}.clear-button{display:none}.filter-button{padding:5px 15px;border-radius:15px;background:#eee;min-width:70px;margin:0 5px;text-align:center;height:30px}.icon,.icon-pulse{width:24px;height:24px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.geo-button-pulse{animation:pulse .8s infinite alternate}@keyframes pulse{0%{color:#eee}100%{color:#555}}.lileft{display:flex;flex-direction:column}.lidetails,.linavi{height:30px}.liright{display:flex;flex-direction:column;text-align:right}.list-item .price{font-size:18px;white-space:nowrap;flex-grow:1}.list-item .name{color:#333;font-size:14px}.list-item .info{flex-grow:1;margin-left:10px;font-size:12px;color:#666}.list-item .note{color:gray}.list-item .distance{font-size:14px;white-space:nowrap;flex-grow:1;margin-left:10px}.icon_navigation{width:30px;height:30px}.icon_details{width:25px;height:30px;fill:#666}.list-item{border:1px solid #ccc;background:#fff;margin:5px;padding:12px;cursor:pointer;min-width:250px;flex-shrink:0;scroll-snap-align:center;display:flex;justify-content:space-between;color:#333;border-radius:6px;box-sizing:border-box;max-width:calc(100vw - 20px)}#list-horizontal{height:120px;flex-shrink:0;overflow-x:auto;overflow-y:hidden;background:#eee;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}#list-horizontal #hubList{display:flex;height:100%}#list-horizontal #hubList .list-item{min-width:250px;height:100px;margin:10px 5px}#hubList .list-item.active{border:2px solid var(--accent-color);background-color:var(--accent-color-light);padding:11px}#logo{width:120px;height:32px;position:absolute;left:10px}@media (max-width:600px){#logo{width:32px;height:32px;object-fit:none;object-position:left;overflow:hidden;left:5px}}.menu-icon{width:32px;height:32px;color:#eee;position:absolute;right:10px;cursor:pointer}.dropdown{display:none;position:absolute;top:50px;right:0;background-color:#fff;border:2px solid #ccc;border-radius:0 0 6px 6px;padding:.5em 0;z-index:1001;min-width:160px;font-size:20px}.dropdown.show{display:block}.dropdown a{display:block;padding:.5em 1em;text-decoration:none;color:#333;transition:background-color .2s ease}.dropdown a:hover{background-color:#f0f0f0}.progress-container{position:fixed;top:46px;left:0;width:100%;height:4px;background-color:#eee;overflow:hidden;display:none;z-index:9999}.progress-bar{position:absolute;height:100%;width:50%;background:linear-gradient(90deg,#4caf50,#8bc34a);animation:progressAnimation 1.5s linear infinite}@keyframes progressAnimation{0%{left:-50%}100%{left:100%}}.leaflet-bar a{background-color:#fff;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#555}.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:10px;border-bottom-right-radius:10px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:10px;border-top-right-radius:10px}.leaflet-touch .leaflet-bar a{width:35px;height:35px;line-height:35px}.leaflet-bar{border-radius:10px}#detailBox{display:none;position:fixed;top:50px;left:0;height:calc(100vh - 50px);background:#fff;border:1px solid #ccc;width:280px;padding:10px;z-index:1000;color:#666;font-size:14px}#detailBox.horizontal{display:none;position:fixed;top:0;left:0;height:calc(100vh - 20px);width:calc(100vw - 20px);background:#fff;border:1px solid #ccc;padding:10px;z-index:1000;color:#666;font-size:14px}#detailBox .close-btn{position:absolute;top:10px;right:10px;background:0 0;border:none;cursor:pointer}#detailBox .close-btn svg{width:24px;height:24px;stroke:#333;stroke-width:2;stroke-linecap:round}#detailBox .name{font-size:1.4em;font-weight:700;margin-top:20px;color:#222}#detailBox .operator{color:#555;margin-top:5px}#detailBox .address,#detailBox .location{margin-top:10px;color:#444;font-size:.95em}#detailBox .connector-table{width:100%;border-collapse:collapse;margin-top:15px;font-size:.95em}#detailBox .connector-table td,#detailBox .connector-table th{border:1px solid #ccc;padding:6px 8px;text-align:left}#detailBox .connector-table thead{background-color:#f5f5f5}#detailBox .connector-table .match{background-color:var(--accent-color-light)}#detailBox .source{margin-top:20px;font-size:.85em;color:#777}#detailBox .source a{color:#0056b3;text-decoration:none}#detailBox .source a:hover{text-decoration:underline}#searchBox{display:none;position:absolute;z-index:1001;color:#333;background-color:#fff}#searchBox.vertical{top:60px;right:60px;border:2px solid #ccc;border-radius:10px;min-width:500px;max-width:calc(100vw - 60px);min-height:300px}#searchBox.horizontal{top:0;left:0;height:100vh;width:100vw;border:none}#searchBox .input-wrapper{display:flex;align-items:center;position:relative}#searchInput{flex:1;padding:10px;font-size:1em;border-radius:10px 10px 0 0;border:none;border-bottom:1px solid #ccc;outline:0;color:#333}#searchBox .clear-btn,#searchBox .search-btn{background:0 0;border:none;cursor:pointer;font-size:1.2em;position:absolute}#searchBox .clear-btn{right:2em;display:none}#searchBox .search-btn{right:.2em}#searchBox ul{list-style:none;padding-left:0;margin-top:.5em}#searchBox li{padding:.3em;cursor:pointer;display:flex;align-items:center}#searchBox li:hover{background-color:#eee}#searchBox .icon{margin-right:5px;color:#888}#searchBox .history-delete{margin-left:auto;padding-left:10px;cursor:pointer;color:#888}#history,#results{margin-top:.5em}