:root{background:#071014;color:#f8fafc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;min-width:320px;overflow:hidden;overscroll-behavior:none}button,input{font:inherit}button{background:#0f172aeb;border:1px solid rgb(148 163 184 / .28);border-radius:999px;color:#f8fafc;cursor:pointer;min-height:42px;padding:.65rem 1rem;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.55}input{background:#fff;border:1px solid rgb(15 23 42 / .22);border-radius:999px;color:#111827;min-height:44px;min-width:0;padding:.65rem 1rem;width:100%}label{color:#334155;display:grid;font-size:.76rem;font-weight:800;gap:.25rem;letter-spacing:0}.navigation-app{background:#071014;height:100dvh;top:0;right:0;bottom:0;left:0;overflow:hidden;position:fixed;width:100vw}.slippy-navigation-map{background:#111827;cursor:grab;height:100%;overflow:hidden;position:absolute;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.map-rotator{position:absolute;transform-origin:center center;transition:transform .18s linear;will-change:transform}.map-rotator.navigation-tilt{transition:transform .26s ease-out}.map-tile{height:256px;image-rendering:auto;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:256px}.map-reference.transportation{opacity:.88}.map-reference.boundaries{opacity:.92}.route-overlay{height:100%;top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;width:100%}.route-line-shadow,.route-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.route-line-shadow{stroke:#0f172ad9;stroke-width:11}.route-line{stroke:#2563eb;stroke-width:7}.route-marker{align-items:center;border:3px solid #ffffff;border-radius:999px;box-shadow:0 8px 18px #00000057;color:#fff;display:inline-flex;font-size:.86rem;font-weight:900;height:2rem;justify-content:center;min-height:2rem;padding:0;position:absolute;transform:translate(-50%,-50%);width:2rem;z-index:24}.route-marker.start{background:#047857}.route-marker.destination{background:#2563eb}.route-marker.waypoint{background:#f59e0b}.route-marker.pin{background:#ef4444}.current-position-marker{align-items:center;background:#fff;border:1px solid rgb(15 23 42 / .16);border-radius:999px;box-shadow:0 10px 22px #00000059;display:flex;height:4.8rem;justify-content:center;position:absolute;transform-origin:center;width:4.8rem;z-index:26}.current-position-marker span{border-left:1.1rem solid transparent;border-right:1.1rem solid transparent;border-bottom:2.4rem solid #2563eb;display:block;filter:drop-shadow(0 2px 1px rgb(0 0 0 / .25));height:0;transform:translateY(-.25rem);width:0}.map-attribution{background:#fffc;border-radius:999px;bottom:calc(.8rem + env(safe-area-inset-bottom,0px));color:#334155;font-size:.72rem;padding:.22rem .55rem;position:absolute;right:.8rem;z-index:8}.route-planner{background:#fffffff0;border:1px solid rgb(15 23 42 / .12);border-radius:1.35rem;box-shadow:0 24px 60px #00000052;display:grid;gap:.65rem;left:50%;max-height:min(78dvh,42rem);max-width:min(44rem,calc(100vw - 2rem));overflow:auto;padding:.85rem;position:absolute;top:calc(1rem + env(safe-area-inset-top,0px));transform:translate(-50%);width:44rem;z-index:40}.account-button{background:#fffffff2;border:0;box-shadow:0 12px 34px #0000003d;color:#0f172a;font-weight:900;left:calc(1rem + env(safe-area-inset-left,0px));max-width:min(18rem,calc(100vw - 2rem));overflow:hidden;position:absolute;text-overflow:ellipsis;top:calc(1rem + env(safe-area-inset-top,0px));white-space:nowrap;z-index:46}.auth-overlay{align-items:center;background:#0206176b;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:1rem;position:fixed;z-index:90}.auth-card{background:#fffffffa;border:1px solid rgb(15 23 42 / .12);border-radius:1.2rem;box-shadow:0 28px 80px #0000005c;color:#0f172a;display:grid;gap:.8rem;max-height:calc(100dvh - 2rem);max-width:27rem;overflow:auto;padding:1rem;width:100%}.auth-card-title{align-items:start;display:flex;gap:.8rem;justify-content:space-between}.auth-card-title strong,.auth-card-title span{display:block}.auth-card-title strong{font-size:1.2rem}.auth-card-title span,.auth-card p,.auth-message{color:#64748b;margin:0}.auth-tabs,.auth-actions{display:grid;gap:.55rem;grid-template-columns:1fr 1fr}.auth-card button{background:#eef2f7;border:0;color:#0f172a;font-weight:900}.auth-card button.primary,.auth-card .primary{background:#047857;color:#fff}.auth-tabs button.active{background:#0f172a;color:#fff}.auth-card .auth-skip{background:transparent;box-shadow:none;color:#475569;min-height:2.2rem;padding:.2rem}.search-input-row{align-items:center;display:grid;gap:.55rem;grid-template-columns:auto minmax(0,1fr) auto}.search-input-row button{min-height:44px}.saved-place-grid{display:grid;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr))}.saved-place-grid button{align-items:start;background:#f8fafc;display:grid;gap:.18rem;justify-items:start;min-height:4rem;overflow:hidden;padding:.7rem .85rem;text-align:left}.saved-place-grid span{color:#0f172a;font-weight:900}.saved-place-grid small{color:#64748b;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-place-actions{display:grid;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr))}.search-panel-title,.search-history-header{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.search-panel-title strong{color:#0f172a;font-size:1.1rem}.search-panel-title button,.search-history-header button{min-height:2.25rem;padding:.35rem .8rem}.search-history{border-bottom:1px solid rgb(15 23 42 / .12);display:grid;gap:.55rem;padding-bottom:.65rem}.search-history-header strong{color:#334155;font-size:.88rem}.search-history-list{display:grid;gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr))}.search-history-list button{align-items:start;display:grid;gap:.18rem;justify-items:start;min-height:3.3rem;overflow:hidden;padding:.52rem .65rem;text-align:left}.search-history-list span,.search-history-list small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-history-list span{font-weight:900}.search-history-list small{color:#64748b;font-size:.78rem}.planner-row{align-items:end;display:grid;gap:.55rem;grid-template-columns:minmax(0,1fr) auto}.planner-actions{display:grid;gap:.55rem;grid-template-columns:1fr 1fr auto}.route-planner button{background:#fff;border-color:#0f172a2e;color:#111827}.route-planner .primary{background:#047857;border-color:#047857;color:#fff;font-weight:900}.route-planner p{color:#475569;font-size:.86rem;margin:0;min-height:1.2rem}.turn-card{align-items:center;background:#08736a;border-radius:1.1rem;box-shadow:0 22px 60px #00000059;display:grid;gap:.95rem;grid-template-columns:auto minmax(0,1fr);left:calc(1rem + env(safe-area-inset-left,0px));max-width:min(47rem,calc(100vw - 7rem));padding:1rem 1.2rem;position:absolute;top:calc(1rem + env(safe-area-inset-top,0px));z-index:42}.turn-card strong,.turn-card span{display:block}.turn-card strong{color:#fff;font-size:clamp(1.25rem,3vw,2.45rem);line-height:1.05}.turn-card span{color:#d8fffb;font-size:clamp(.95rem,1.5vw,1.3rem);margin-top:.35rem}.turn-distance{border-right:1px solid rgb(255 255 255 / .22);color:#fff;font-size:clamp(1.25rem,2.8vw,2rem);font-weight:900;min-width:5.5rem;padding-right:.95rem}.navigation-bottom-card{align-items:center;background:#fffffff5;border-radius:1.35rem 1.35rem 0 0;bottom:0;box-shadow:0 -16px 60px #0000004d;color:#111827;display:grid;gap:.8rem;grid-template-columns:minmax(0,1fr) auto auto;left:calc(1rem + env(safe-area-inset-left,0px));max-width:min(48rem,calc(100vw - 2rem));padding:1.05rem 1.2rem calc(1.05rem + env(safe-area-inset-bottom,0px));position:absolute;z-index:42}.navigation-bottom-card strong{color:#15803d;display:block;font-size:clamp(1.6rem,3.5vw,2.35rem);line-height:1}.navigation-bottom-card span{color:#475569;display:block;font-size:1rem;margin-top:.25rem}.navigation-bottom-card button{background:#ef4444;border-color:#ef4444;color:#fff;font-weight:900;min-width:6.5rem}.route-preview-card{background:#fffffff7;border-radius:1.4rem 1.4rem 0 0;bottom:0;box-shadow:0 -18px 62px #00000052;color:#111827;display:grid;gap:.85rem;left:50%;max-width:min(45rem,calc(100vw - 2rem));padding:.7rem 1.15rem calc(1rem + env(safe-area-inset-bottom,0px));position:absolute;transform:translate(-50%);width:45rem;z-index:42}.route-preview-card.collapsed{background:transparent;border-radius:0;box-shadow:none;gap:0;padding:0 0 calc(.35rem + env(safe-area-inset-bottom,0px));pointer-events:none;width:auto}.route-preview-handle{align-items:center;background:transparent;border:0;box-shadow:none;display:flex;height:1.3rem;justify-content:center;justify-self:center;min-height:1.3rem;padding:0;touch-action:none;width:9rem}.route-preview-handle span{background:#cbd5e1;border-radius:999px;box-shadow:0 2px 10px #0f172a29;display:block;height:.28rem;width:4rem}.route-preview-card.collapsed .route-preview-handle{background:#fffffff2;border-radius:999px 999px 0 0;box-shadow:0 -10px 32px #00000047;height:2.1rem;min-height:2.1rem;pointer-events:auto;width:7.8rem}.route-preview-card.collapsed .route-preview-handle span{background:#64748b}.route-preview-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.route-preview-header span{color:#475569;display:block;font-weight:800}.route-preview-header strong{color:#047857;display:block;font-size:clamp(1.8rem,5vw,3rem);line-height:1}.route-preview-card p,.route-preview-card small{color:#475569;margin:0}.route-preview-actions{display:grid;gap:.65rem;grid-template-columns:1fr 1fr 1fr}.route-preview-actions button,.route-preview-header button{background:#eef2f7;border:0;color:#0f172a;font-weight:900}.route-preview-actions .primary{background:#047857;color:#fff}.speed-card,.milepost-card{align-items:center;background:#fff;border:3px solid #111827;border-radius:.65rem;display:grid;justify-items:center;min-width:4.8rem;padding:.35rem .5rem}.speed-card strong,.milepost-card strong{color:#111827;font-size:2rem}.speed-card span,.milepost-card span{color:#111827;font-size:.86rem;margin:0}.map-controls{display:grid;gap:.7rem;position:absolute;right:calc(1rem + env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);z-index:45}.map-controls button,.floating-search{background:#fffffff2;border:0;box-shadow:0 12px 34px #00000042;color:#111827;font-weight:800}.map-controls button{min-width:4.6rem}.orientation-compass{align-items:center;border-radius:999px;display:flex;height:4.7rem;justify-content:center;min-height:4.7rem;min-width:4.7rem;padding:0;position:relative;width:4.7rem}.orientation-compass:before{border:1px solid rgb(15 23 42 / .16);border-radius:999px;content:"";top:.45rem;right:.45rem;bottom:.45rem;left:.45rem;position:absolute}.compass-north{color:#ef4444;font-size:.82rem;font-weight:1000;top:.32rem;right:.32rem;bottom:.32rem;left:.32rem;line-height:1;position:absolute;text-align:center;transform-origin:50% 2rem}.compass-triangle{border-left:.58rem solid transparent;border-right:.58rem solid transparent;border-bottom:1.45rem solid #2563eb;filter:drop-shadow(0 2px 1px rgb(0 0 0 / .22));height:0;left:50%;position:absolute;top:50%;transform-origin:50% 62%;width:0}.orientation-compass.north-up .compass-triangle{border-bottom-color:#64748b}.floating-search{left:50%;min-width:min(34rem,calc(100vw - 2rem));padding:.95rem 1.2rem;position:absolute;text-align:left;top:calc(1rem + env(safe-area-inset-top,0px));transform:translate(-50%);z-index:40}.pin-sheet,.status-pill{background:#0f172ae6;border:1px solid rgb(148 163 184 / .24);box-shadow:0 16px 44px #00000057;color:#f8fafc;position:absolute;z-index:48}.pin-sheet{border-radius:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));display:grid;gap:.45rem;left:50%;max-width:min(32rem,calc(100vw - 2rem));padding:.85rem;transform:translate(-50%);width:32rem}.pin-sheet span{color:#cbd5e1}.pin-sheet div{display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr)}.pin-sheet button{border-radius:.7rem;min-height:38px;padding:.45rem}.status-pill{border-radius:999px;bottom:calc(1rem + env(safe-area-inset-bottom,0px));display:grid;gap:.1rem;left:calc(1rem + env(safe-area-inset-left,0px));max-width:min(34rem,calc(100vw - 2rem));padding:.7rem 1rem}.status-pill span{color:#cbd5e1;font-size:.82rem}.is-navigating .map-attribution{display:none}@media (max-width: 760px){.route-planner{bottom:calc(.75rem + env(safe-area-inset-bottom,0px));top:auto;width:calc(100vw - 1rem)}.planner-row,.planner-actions,.search-history-list,.search-input-row,.route-preview-actions{grid-template-columns:1fr}.saved-place-grid,.save-place-actions{grid-template-columns:1fr 1fr}.turn-card{left:calc(.65rem + env(safe-area-inset-left,0px));max-width:calc(100vw - 5.4rem);padding:.8rem}.turn-distance{min-width:4.4rem}.map-controls{gap:.55rem;right:calc(.65rem + env(safe-area-inset-right,0px))}.map-controls button{min-height:3.35rem;min-width:3.35rem;padding:.45rem}.orientation-compass{height:3.8rem;min-height:3.8rem;min-width:3.8rem;width:3.8rem}.navigation-bottom-card{border-radius:1.2rem 1.2rem 0 0;grid-template-columns:minmax(0,1fr) auto;left:0;max-width:none;right:0}.route-preview-card{border-radius:1.2rem 1.2rem 0 0;left:0;max-width:none;right:0;transform:none;width:auto}.navigation-bottom-card button{grid-row:span 2;min-width:5.4rem}.speed-card{justify-self:start}.pin-sheet{width:calc(100vw - 1rem)}.pin-sheet div{grid-template-columns:repeat(2,1fr)}}
