.login-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10000}.login-modal{background:#fff;padding:24px;border-radius:8px;width:90%;max-width:400px;box-shadow:0 4px 16px #0003}.login-modal h2{margin-top:0;margin-bottom:16px;text-align:center}.login-modal form label{display:block;margin-bottom:12px;font-size:.9rem}.login-modal form input{width:100%;padding:8px;margin-top:4px;box-sizing:border-box}.login-modal-buttons{display:flex;justify-content:space-between;margin-top:16px}.login-modal-buttons button{flex:1;padding:10px 0;margin:0 4px;border:none;border-radius:4px;cursor:pointer}.login-modal-buttons button:first-child{background-color:#007acc;color:#fff}.login-modal-buttons button:last-child{background-color:#ccc;color:#333}:root{--primary-color: #007acc;--primary-hover: #005fa3;--secondary-bg: #ccc;--font-sans: "Segoe UI", sans-serif;--border-radius: 8px;--border-radius-sm: 6px;--btn-font-size: .95rem;--avatar-size: 28px;--z-high: 9999}.user-status-panel,.user-dropdown,.user-button{display:flex;align-items:center;gap:10px;font-family:var(--font-sans)}.login-button,.user-button,.login-dialog .button-row button{border:none;cursor:pointer;transition:background-color .2s ease;font-size:var(--btn-font-size)}.login-button{background-color:var(--primary-color);color:#fff;padding:8px 14px;border-radius:var(--border-radius);min-width:80px;white-space:nowrap;text-align:center}.login-button:hover{background-color:var(--primary-hover)}.user-button{gap:8px;background:none;padding:6px 10px;border-radius:var(--border-radius)}.user-avatar{width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;background-color:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--btn-font-size)}.user-name{color:var(--primary-color);font-size:var(--btn-font-size);white-space:nowrap}.user-menu{position:absolute;top:110%;right:0;background:#fff;border:1px solid #ccc;border-radius:var(--border-radius);padding:6px;box-shadow:0 4px 12px #00000026;min-width:120px;z-index:10}.user-menu button{background:none;border:none;padding:6px 12px;width:100%;text-align:left;cursor:pointer;font-size:var(--btn-font-size)}.user-menu button:hover{background-color:#f0f0f0}.user-status-panel{position:absolute;top:8px;right:100px;z-index:var(--z-high)}.info-panel{max-height:100vh;overflow-y:auto;display:flex;flex-direction:column;padding-bottom:72px;box-sizing:border-box}.pc-tabs{display:flex;background:#f2f6fa;border-bottom:1px solid #e5e7eb}.pc-tabs .tab-button{flex:1;padding:14px;background:none;border:none;cursor:pointer;font-weight:600}.pc-tabs .tab-button.active{border-bottom:3px solid #007acc;color:#007acc}.mobile-tabs{position:fixed;bottom:0;left:0;right:0;height:56px;display:flex;background:#fff;border-top:1px solid #e5e7eb;z-index:1000}.mobile-tabs .menu-button{flex:1;background:none;border:none;padding:4px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#666}.mobile-tabs .menu-button.active{color:#007acc}.mobile-tabs .menu-icon{font-size:1.2rem;line-height:1}.mobile-tabs .menu-label{font-size:.65rem;margin-top:2px}.hidden{display:none!important}.tab-content{flex:1;min-height:0;padding:16px}@media screen and (max-width: 768px){.info-panel{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}}.home-tab-container{max-height:calc(100vh - 200px);overflow-y:auto;padding:16px;box-sizing:border-box}.navigator-bubble{position:absolute;bottom:700px;right:50px;max-width:280px;background:#fffffff2;border-radius:12px;padding:12px 16px;box-shadow:0 4px 12px #0003;font-size:.95rem;line-height:1.4;z-index:9998}.bubble-triangle{position:absolute;bottom:-10px;left:40px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid rgba(255,255,255,.95)}.bluemap-overlay{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100dvh;min-height:100dvh;background:#0009;display:flex;justify-content:center;align-items:center;z-index:99999;pointer-events:auto}.bluemap-container{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 24px #00000052;display:flex;flex-direction:column;position:relative;width:min(909px,95vw);height:min(700px,90dvh);z-index:10001;transition:box-shadow .2s;padding:0}.bluemap-header{display:flex;align-items:center;justify-content:space-between;background:#292929;color:#fff;padding:0 20px;height:48px;min-height:48px;font-size:1.1rem;font-weight:700;border-radius:14px 14px 0 0;box-sizing:border-box;position:relative;z-index:10}.bluemap-title{flex:1;text-align:left;font-size:1.1rem;padding-left:2px}.bluemap-close-btn{position:relative;right:-6px;top:0;background:none;border:none;color:#fff;font-size:2rem;font-weight:700;cursor:pointer;border-radius:50%;width:44px;height:44px;line-height:42px;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:20}.bluemap-close-btn:hover{background:#f4433624;color:#f44336}.bluemap-close-btn{touch-action:auto}.bluemap-iframe{display:block;width:100%;height:100%;border:none;border-radius:0 0 12px 12px;background:#eee}@media (max-width: 1024px),(max-height: 800px),(pointer: coarse){.bluemap-container{max-width:100vw!important;max-height:100dvh!important;width:99vw!important;height:97dvh!important;min-width:0;min-height:0;border-radius:8px;padding:0}.bluemap-header{font-size:1rem;padding:0 10px;height:44px;min-height:44px;border-radius:8px 8px 0 0}.bluemap-close-btn{width:38px;height:38px;font-size:1.6rem}}@supports (-webkit-touch-callout: none){@media (max-width: 1024px) and (orientation: landscape){.bluemap-container{height:calc(100vh - 32px)!important;min-height:0!important;max-height:97vh!important;margin-top:8px;margin-bottom:8px}}}.mobile-bottom-menu{position:fixed;bottom:0;left:0;width:100%;height:56px;display:flex;background-color:#fff;border-top:1px solid #e5e7eb;z-index:1000;pointer-events:auto}.menu-button{flex:1;background:none;border:none;padding:4px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Segoe UI,Meiryo,sans-serif;color:#666;transition:color .2s;z-index:1001}.menu-button .menu-icon{font-size:1.2rem;line-height:1}.menu-button .menu-label{font-size:.65rem;margin-top:2px}.menu-button.active{color:#007acc}@media (min-width: 768px){.mobile-bottom-menu{display:none!important}}.mobile-bottom-menu .menu-button.active{color:#007acc!important;background-color:#007acc1a!important;border-top:2px solid #007acc!important}.mobile-bottom-menu .menu-button.active .menu-icon,.mobile-bottom-menu .menu-button.active .menu-label{color:#007acc!important}.app-container{position:relative;width:100vw;height:100dvh;height:100vh;overflow:hidden;background-size:cover;background-position:center;background-repeat:no-repeat}.header-bar{position:fixed;top:0;left:0;width:100%;height:56px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;background:#fffffff0;box-shadow:0 2px 8px #00000012;z-index:1002}.login-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:24px;border-radius:var(--border-radius-sm);box-shadow:0 10px 30px #00000026;width:340px;z-index:9999;font-family:var(--font-sans)}.panel-mobile{position:absolute;left:0;right:0;height:40vh;bottom:56px;overflow-y:auto;background:#fffffff2;padding:16px;box-sizing:border-box;z-index:1000;border-radius:16px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@supports (-webkit-touch-callout: none){@media screen and (max-width: 768px){.panel-mobile{bottom:calc(156px + env(safe-area-inset-bottom))}}}.bottom-menu-wrapper{position:fixed;bottom:0;left:0;width:100%;height:56px;background:#fffffff2;box-shadow:0 -2px 8px #00000012;padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;display:flex;justify-content:space-around;align-items:center;z-index:1003}@media (min-width: 768px){.header-bar{position:absolute;top:24px;left:24px;right:24px;max-width:1280px;margin:0 auto;border-radius:13px}.panel-mobile,.bottom-menu-wrapper{display:none!important}.panel-pc{position:absolute;top:90px;left:24px;width:48vw;max-width:1280px;min-width:340px;bottom:24px;overflow:hidden;background:#fafcff;border-radius:16px;box-shadow:0 2px 12px #0000000f;z-index:9990}}.login-dialog h3{margin-bottom:20px;font-size:1.25rem;text-align:center}.login-dialog label,.login-dialog input,.login-dialog .button-row button{font-size:var(--btn-font-size)}.login-dialog label{display:block;margin-bottom:12px;color:#333}.login-dialog input{width:100%;padding:8px;margin-top:4px;border:1px solid #ccc;border-radius:var(--border-radius-sm);box-sizing:border-box}.login-dialog .button-row{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.login-dialog .button-row button{flex:1;padding:10px;border-radius:var(--border-radius-sm)}.login-dialog .button-row button:first-child{background-color:var(--primary-color);color:#fff}.login-dialog .button-row button:last-child{background-color:var(--secondary-bg);color:#333}.login-dialog .button-row button:hover{opacity:.9}html,body,#root{width:100vw;height:100dvh;min-height:100dvh;margin:0;padding:0;overflow:hidden!important;position:static!important;box-sizing:border-box}body{background:none!important}.ui-button-group{display:flex;flex-direction:row;align-items:center;gap:12px}.icon-button{width:40px;height:40px;border-radius:50%;background-color:#f5f5f5;display:flex;align-items:center;justify-content:center;border:1px solid #ccc;cursor:pointer;transition:background-color .2s;padding:0;box-sizing:border-box}.icon-button img{width:22px;height:22px}.map-button{display:flex;align-items:center;gap:6px;padding:0 14px;font-size:1rem;height:40px;border-radius:20px;border:1.5px solid #007acc;background:#fff;color:#007acc;cursor:pointer;transition:background-color .2s;box-sizing:border-box}.map-button img{width:22px;height:22px}.map-button:hover{background-color:#e6f2ff}.open-map-button{display:inline-block;padding:4px 8px;margin-left:8px;background:#007acc;color:#fff;border:none;border-radius:4px;font-size:.8rem;cursor:pointer;position:relative;z-index:1010;transition:background-color .2s}.open-map-button:hover{background:#005a99}
