*{box-sizing:border-box}html,body,#map{width:100%;height:100%;margin:0}body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden;background:#eef1f4;color:#15171a}.topbar{position:absolute;z-index:5;top:max(12px,env(safe-area-inset-top));left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand,.icon-btn,.search-card,.results,.status-pill{box-shadow:0 8px 28px rgba(0,0,0,.13);backdrop-filter:blur(12px)}.brand{pointer-events:auto;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.95);padding:8px 12px 8px 8px;border-radius:16px}.brand-mark{width:36px;height:36px;border-radius:12px;background:#111;color:#fff;display:grid;place-items:center;font-weight:800}.brand strong{display:block;font-size:14px}.brand span{display:block;color:#6b7178;font-size:10px;margin-top:2px}.icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:15px;background:rgba(255,255,255,.96);font-size:25px}.search-wrap{position:absolute;z-index:6;top:max(74px,calc(env(safe-area-inset-top) + 74px));left:14px;right:14px;max-width:600px;margin:auto}.search-card{height:54px;background:rgba(255,255,255,.98);border-radius:16px;display:flex;align-items:center;padding:0 8px 0 12px}.search-icon{font-size:25px;color:#5e646b;margin-right:8px}.search-card input{border:0;outline:0;background:transparent;width:100%;font-size:16px;min-width:0}.clear-btn{border:0;background:transparent;font-size:24px;color:#777;padding:6px}.go-btn{border:0;background:#111;color:#fff;border-radius:12px;padding:10px 13px;font-weight:700}.results{margin-top:8px;background:rgba(255,255,255,.98);border-radius:15px;overflow:hidden;max-height:45vh;overflow-y:auto}.result{width:100%;border:0;border-bottom:1px solid #eceef0;background:transparent;text-align:left;padding:12px 14px;display:block}.result:last-child{border-bottom:0}.result strong{display:block;font-size:14px;margin-bottom:3px}.result span{font-size:11px;color:#6a7077;line-height:1.35}.empty{padding:14px;font-size:13px;color:#5f666d}.status-pill{position:absolute;z-index:4;left:50%;bottom:max(28px,calc(env(safe-area-inset-bottom) + 14px));transform:translateX(-50%);background:rgba(20,22,25,.82);color:#fff;border-radius:999px;padding:7px 12px;font-size:11px;white-space:nowrap}.maplibregl-ctrl-top-right{top:132px;right:7px}.maplibregl-ctrl-group{border-radius:13px!important;overflow:hidden}.user-dot{width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:#111;box-shadow:0 1px 7px rgba(0,0,0,.45)}@media(min-width:760px){.topbar{left:24px;right:24px}.search-wrap{left:24px;right:auto;width:480px;margin:0}.maplibregl-ctrl-top-right{top:18px;right:18px}}
.org-marker{width:38px;height:38px;border:3px solid #fff;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:#111;color:#fff;display:grid;place-items:center;font-size:17px;box-shadow:0 5px 14px rgba(0,0,0,.28);cursor:pointer}.org-marker::first-letter{transform:rotate(45deg)}.org-popup{min-width:190px}.org-popup>b,.org-popup>span{display:block}.org-popup>span{color:#777;font-size:11px;margin-top:2px}.org-popup p{margin:7px 0;font-size:12px}.org-actions{display:flex;gap:6px;margin-top:10px}.org-actions a{background:#111;color:#fff;text-decoration:none;padding:7px 9px;border-radius:8px;font-size:11px;font-weight:700}

/* v0.3.5 organization layer */
.org-marker{padding:0;border:3px solid #fff}
.org-marker span{display:grid;place-items:center;width:100%;height:100%;transform:rotate(45deg);font-size:16px;line-height:1}
.org-popup{min-width:220px;max-width:280px;padding:2px}
.org-popup-head{display:flex;align-items:center;gap:10px;margin:2px 0 9px}
.org-popup-icon{width:38px;height:38px;border-radius:12px;background:#111;color:#fff;display:grid;place-items:center;font-size:18px;flex:0 0 auto}
.org-popup-head b{font-size:16px;line-height:1.15}
.org-popup-head span{display:block;color:#777;font-size:11px;margin-top:3px}
.org-popup p{margin:7px 0;font-size:12px;line-height:1.35}
.org-description{color:#4d5359}
.org-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.org-actions a,.org-actions button{border:0;background:#111;color:#fff;text-decoration:none;padding:8px 10px;border-radius:9px;font-size:11px;font-weight:750;font-family:inherit;cursor:pointer}
.local-result strong{font-size:14px}
.maplibregl-popup-content{border-radius:16px!important;padding:14px!important;box-shadow:0 12px 34px rgba(0,0,0,.18)!important}
.maplibregl-popup-close-button{font-size:22px;padding:5px 9px;color:#777}

/* v0.3.5.1 public routes/navigation */
.route-fab{position:absolute;z-index:7;right:14px;bottom:max(70px,calc(env(safe-area-inset-bottom) + 55px));border:0;background:#111;color:#fff;border-radius:999px;padding:13px 18px;font-weight:800;box-shadow:0 8px 28px rgba(0,0,0,.22)}
.route-sheet{position:absolute;z-index:8;left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));max-height:58vh;overflow:auto;background:rgba(255,255,255,.98);border-radius:20px;padding:14px;box-shadow:0 16px 45px rgba(0,0,0,.24);backdrop-filter:blur(12px)}
.route-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.route-head strong{font-size:18px}.route-head button{border:0;background:#eee;width:34px;height:34px;border-radius:10px;font-size:22px}
.route-fields{display:grid;gap:8px}.route-field{width:100%;border:1px solid #ddd;background:#fafafa;border-radius:13px;padding:10px 12px;text-align:left}.route-field small{display:block;color:#777;font-size:10px}.route-field span{display:block;font-weight:750;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.route-actions-main{display:flex;gap:8px;margin-top:10px}.route-actions-main button{flex:1;border:0;background:#111;color:#fff;border-radius:12px;padding:12px;font-weight:800}.route-actions-main #routeStartNav{background:#1b7f3a}
.route-summary{padding:10px 2px 5px;font-size:13px;color:#555}.route-summary b{color:#111}.route-steps{margin-top:4px}.route-step{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;border-top:1px solid #eee}.route-step b{font-size:12px}.route-step span{font-size:11px;color:#777;white-space:nowrap}
@media(min-width:760px){.route-sheet{left:24px;right:auto;width:420px}.route-fab{right:24px}}

/* v0.3.5.2 navigation-card fix */
.route-sheet.navigating{max-height:none;padding:12px 14px}
.route-sheet.navigating .route-fields,
.route-sheet.navigating #routeBuild,
.route-sheet.navigating .route-steps{display:none}
.route-sheet.navigating .route-head{margin-bottom:4px}
.route-sheet.navigating .route-summary{padding:6px 2px;font-size:14px}
.route-sheet.navigating .route-actions-main{margin-top:7px}
.route-sheet.navigating #routeStartNav{display:block!important;flex:1;background:#111}

/* v0.3.5.3 */
.user-dot{width:20px;height:20px;border-radius:50%;background:#1677ff;border:4px solid #fff;box-shadow:0 0 0 3px rgba(22,119,255,.22),0 2px 8px rgba(0,0,0,.25)}

/* v0.3.5.4 live navigation */
.route-sheet.navigating .route-summary{font-size:15px;line-height:1.35}
.route-sheet.navigating .route-summary b{font-size:17px}

/* v0.3.5.5 travel modes + navigation cursor */
.travel-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}
.travel-modes button{border:1px solid #ddd;background:#f7f7f7;color:#222;border-radius:12px;padding:10px 6px;font-weight:750;font-size:13px}
.travel-modes button.active{background:#111;color:#fff;border-color:#111}
.travel-modes button span{margin-left:3px}
.route-sheet.navigating .travel-modes{display:none}
.nav-cursor{width:34px;height:34px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}
.nav-cursor span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#1677ff;color:#fff;border:3px solid #fff;border-radius:50% 50% 50% 8px;font-size:15px;line-height:1;transform:rotate(45deg)}
.route-sheet.navigating .route-summary small{display:block;margin-top:4px;color:#777;font-size:12px;font-weight:600}

/* v0.3.5.6 ETA + finish route */
.route-summary small{display:block;margin-top:5px;color:#777;font-size:12px;font-weight:650}
.route-sheet.navigating .route-summary small{font-size:13px}
