:root{--accent:#d97757;--accent-hover:#c0623f;--accent-fg:#fff;--accent-soft:rgba(217,119,87,.1);--accent-soft-border:rgba(217,119,87,.32);--bg-body:#f8fafc;--glass-bg-start:hsla(0,0%,100%,.85);--glass-bg-end:hsla(0,0%,100%,.55);--glass-border:rgba(15,23,42,.06);--glass-shadow:rgba(15,23,42,.08);--glass-highlight:hsla(0,0%,100%,.9);--card-bg:#fff;--card-border:#e2e8f0;--input-bg:#fff;--input-border:#e2e8f0;--input-focus-bg:#fff;--hover-bg:#f8fafc;--pill-bg:#fff;--pill-active-bg:#0f172a;--pill-active-color:#fff;--option-bg:#fff;--option-active-bg:var(--accent-soft);--option-active-border:var(--accent);--trip-bg:#fff;--trip-border:#e2e8f0;--place-card-bg:#fff;--place-close-bg:#fff;--separator-color:#e2e8f0;--scrollbar-thumb:rgba(15,23,42,.15);--mode-switcher-bg:#f1f5f9;--mode-active-bg:#fff;--btn-border:#e2e8f0;--delete-btn-bg:rgba(239,68,68,.08);--text-brand:#0f172a;--text-primary:#0f172a;--text-input:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--text-dim:#475569;--text-tab-muted:#94a3b8;--insights-bg-start:#f8fafc;--insights-bg-end:#f1f5f9;--insights-border:#e2e8f0;--insights-title:var(--accent);--insights-text:#0f172a;--focus-ring:var(--accent);--tab-border:#e2e8f0;--error-bg:#fef2f2;--error-border:#fecaca;--error-text:#b91c1c;--dot-line:rgba(15,23,42,.18);--tag-bg:#f1f5f9;--tag-border:#e2e8f0;--tag-eta-bg:#f1f5f9;--tag-eta-border:#e2e8f0;--tag-eta-color:#334155;--input-shadow:rgba(15,23,42,.04)}[data-theme=dark]{--accent:#e89274;--accent-hover:#f0a48b;--accent-fg:#1a0e08;--accent-soft:hsla(16,72%,68%,.12);--accent-soft-border:hsla(16,72%,68%,.32);--bg-body:#0f172a;--glass-bg-start:rgba(15,23,42,.85);--glass-bg-end:rgba(15,23,42,.55);--glass-border:hsla(0,0%,100%,.06);--glass-shadow:rgba(0,0,0,.4);--glass-highlight:hsla(0,0%,100%,.04);--card-bg:rgba(30,41,59,.6);--card-border:hsla(0,0%,100%,.06);--input-bg:rgba(30,41,59,.6);--input-border:rgba(51,65,85,.6);--input-focus-bg:rgba(30,41,59,.9);--hover-bg:rgba(51,65,85,.6);--pill-bg:rgba(30,41,59,.6);--pill-active-bg:#f1f5f9;--pill-active-color:#0f172a;--option-bg:rgba(30,41,59,.5);--option-active-bg:var(--accent-soft);--option-active-border:var(--accent);--trip-bg:rgba(30,41,59,.55);--trip-border:hsla(0,0%,100%,.06);--place-card-bg:rgba(15,23,42,.95);--place-close-bg:rgba(30,41,59,.9);--separator-color:hsla(0,0%,100%,.06);--scrollbar-thumb:hsla(0,0%,100%,.15);--mode-switcher-bg:hsla(0,0%,100%,.04);--mode-active-bg:rgba(51,65,85,.7);--btn-border:hsla(0,0%,100%,.08);--delete-btn-bg:rgba(239,68,68,.12);--text-brand:#f1f5f9;--text-primary:#f1f5f9;--text-input:#e2e8f0;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-dim:#cbd5e1;--text-tab-muted:#64748b;--insights-bg-start:rgba(30,41,59,.55);--insights-bg-end:rgba(30,41,59,.35);--insights-border:hsla(0,0%,100%,.06);--insights-title:var(--accent);--insights-text:#e2e8f0;--focus-ring:var(--accent);--tab-border:rgba(51,65,85,.6);--error-bg:rgba(127,29,29,.2);--error-border:rgba(239,68,68,.3);--error-text:#fca5a5;--dot-line:rgba(241,245,249,.18);--tag-bg:hsla(0,0%,100%,.04);--tag-border:hsla(0,0%,100%,.08);--tag-eta-bg:hsla(0,0%,100%,.04);--tag-eta-border:hsla(0,0%,100%,.08);--tag-eta-color:#cbd5e1;--input-shadow:rgba(0,0,0,.2)}.autocomplete-dropdown,.glass-pane,.input-label,.insights-pane,.route-error,.route-summary-card,.separator,.stat-card,.tbt-panel,.title,body{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}*,:after,:before{box-sizing:border-box}body{margin:0;font-family:var(--font-cairo),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--bg-body)}.app-container{position:relative;width:100%;height:100vh;overflow:hidden}.map-fallback{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--text-brand);font-size:1rem;font-weight:600;background:var(--bg-body)}.glass-pane{position:absolute;top:24px;inset-inline-start:24px;z-index:10;width:360px;padding:24px;border-radius:28px;background:linear-gradient(135deg,var(--glass-bg-start) 0,var(--glass-bg-end) 100%);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--glass-border);box-shadow:0 16px 40px var(--glass-shadow),inset 0 1px 0 var(--glass-highlight);max-height:calc(100vh - 48px);overflow-y:auto;overflow-x:hidden;transition:transform .3s cubic-bezier(.4,0,.2,1);animation:pane-enter .32s cubic-bezier(.16,1,.3,1) both}@keyframes pane-enter{0%{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}[dir=rtl] .glass-pane{animation-name:pane-enter-rtl}@keyframes pane-enter-rtl{0%{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}.sheet-handle{display:none}.sheet-handle-bar{display:block;width:44px;height:5px;border-radius:3px;background:var(--text-muted);opacity:.4}.glass-pane{scrollbar-width:none;-ms-overflow-style:none}.glass-pane::-webkit-scrollbar{width:0;height:0;display:none}.glass-pane-header{top:-24px;z-index:5;background:transparent;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);margin:-24px -24px 0;padding:24px 24px 12px;border-radius:28px 28px 0 0}.glass-pane-header,.glass-pane:after{position:-webkit-sticky;position:sticky}.glass-pane:after{content:"";display:block;bottom:-1px;height:24px;margin:0 -24px -24px;pointer-events:none;z-index:4;background:linear-gradient(to top,var(--glass-bg-start),transparent)}.title{margin-top:0;margin-bottom:24px;font-size:1.3rem;color:var(--text-primary);letter-spacing:-.015em;font-weight:600;display:flex;align-items:center;flex-wrap:wrap;gap:10px;row-gap:6px}.title-controls,.title-weather-slot{display:inline-flex;align-items:center}.title-controls{-webkit-margin-start:auto;margin-inline-start:auto;gap:8px;flex-wrap:wrap}.input-group{margin-bottom:16px;display:flex;flex-direction:column}.input-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px}.input-label{font-size:.85rem;font-weight:700;color:var(--text-brand);text-transform:uppercase;letter-spacing:.5px}.input-icon{color:var(--text-muted);display:inline-flex;align-items:center}.glass-input{width:100%;padding:14px 16px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:18px;font-size:1rem;color:var(--text-input);outline:none;box-shadow:inset 0 2px 6px var(--input-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-input:focus{background:var(--input-focus-bg);box-shadow:inset 0 2px 6px rgba(0,0,0,.02),0 0 0 4px rgba(59,130,246,.3)}.autocomplete-wrapper{position:relative}.glass-input.has-gps-btn{-webkit-padding-end:48px;padding-inline-end:48px}.gps-btn{position:absolute;inset-inline-end:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.gps-btn:hover:not(:disabled){background:rgba(59,130,246,.12);color:#2563eb;border-color:rgba(59,130,246,.35)}.gps-btn:active:not(:disabled){transform:translateY(-50%) scale(.94)}.gps-btn:disabled{cursor:wait;opacity:.8}.gps-btn--error{color:#dc2626;border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.08)}.gps-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.gps-error-text{position:absolute;inset-inline-end:0;top:calc(100% + 4px);font-size:.72rem;font-weight:600;color:var(--error-text);background:var(--error-bg);border:1px solid var(--error-border);border-radius:8px;padding:4px 8px;white-space:nowrap;z-index:50;animation:fadeIn .2s ease-out}.gps-spinner{width:14px;height:14px;border:2px solid rgba(59,130,246,.25);border-top-color:#2563eb;border-radius:50%;animation:gps-spin .7s linear infinite}@keyframes gps-spin{to{transform:rotate(1turn)}}.place-search-noresults{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--text-muted);box-shadow:0 8px 24px rgba(15,23,42,.06);animation:fadeIn .18s ease-out both}.place-search-noresults>svg{color:var(--text-muted);flex:0 0 auto}.autocomplete-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;background:var(--place-card-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:14px;box-shadow:0 12px 32px var(--glass-shadow);list-style:none;margin:0;padding:4px;overflow:hidden}.autocomplete-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .15s ease}.autocomplete-item.highlighted,.autocomplete-item:hover{background:var(--card-bg)}.autocomplete-item-name{font-size:.88rem;font-weight:600;color:var(--text-primary)}.autocomplete-item-address{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button-group{display:flex;gap:12px;margin-top:24px}.route-btn,.save-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:1px solid var(--btn-border);border-radius:18px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.route-btn{flex:2 1;background:var(--text-primary);color:#fff;border:1px solid var(--text-primary);box-shadow:0 1px 2px rgba(15,23,42,.08);font-weight:600}[data-theme=dark] .route-btn{background:#f1f5f9;color:#0f172a;border-color:#f1f5f9}.route-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:0 6px 16px rgba(217,119,87,.28)}.route-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.save-btn{flex:1 1;background:transparent;color:var(--text-primary);border:1px solid var(--card-border);font-weight:500}.save-btn:hover:not(:disabled){background:var(--hover-bg);border-color:var(--text-muted)}.save-btn:disabled{opacity:.5;cursor:not-allowed}.reset-btn{display:flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;padding:14px 16px;border:1px solid var(--card-border);border-radius:18px;font-size:.95rem;font-weight:500;cursor:pointer;background:transparent;color:var(--text-secondary);transition:background .2s ease,border-color .2s ease,opacity .2s ease}.reset-btn:hover:not(:disabled){background:var(--hover-bg);border-color:var(--text-muted);color:var(--text-primary)}.reset-btn:disabled{opacity:.6;cursor:not-allowed}.reset-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.separator{height:1px;background:linear-gradient(90deg,transparent,var(--separator-color),transparent);margin:24px 0}.stats-panel{display:flex;justify-content:space-between;gap:16px}.stat-card{flex:1 1;background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:14px;border-radius:16px;border:1px solid var(--card-border);box-shadow:0 4px 15px rgba(0,0,0,.05)}.stat-label-row{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.8rem;margin-bottom:4px;font-weight:600}.stat-value{color:var(--text-primary);font-size:1.2rem;font-weight:600}.route-summary-card{display:flex;gap:12px;padding:14px 16px;background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:16px;box-shadow:0 4px 15px rgba(0,0,0,.05);margin-top:4px}.route-summary-visual{display:flex;flex-direction:column;align-items:center;padding-top:4px;flex-shrink:0}.route-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.route-dot--start{background:var(--text-primary)}.route-dot--end{background:#22c55e}.route-dot-line{width:2px;flex:1 1;min-height:18px;background:var(--dot-line);margin:4px 0}.route-summary-info{flex:1 1;min-width:0}.route-summary-title{font-size:.88rem;font-weight:700;color:var(--text-primary);margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-summary-subtitle{font-size:.78rem;color:var(--text-muted);margin:0 0 8px}.route-summary-tags{display:flex;gap:6px;flex-wrap:wrap}.route-tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700;border:1px solid var(--tag-border);color:var(--text-brand);background:var(--tag-bg);letter-spacing:.02em}.travel-mode-switcher{display:flex;gap:4px;padding:3px;background:var(--mode-switcher-bg);border-radius:12px;margin-bottom:4px}.travel-mode-btn{flex:1 1;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;border:none;border-radius:10px;background:transparent;color:var(--text-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.travel-mode-btn:hover{color:var(--text-brand);background:var(--card-bg)}.travel-mode-btn.active{background:var(--mode-active-bg);color:var(--text-brand);box-shadow:0 1px 4px rgba(0,0,0,.08)}.travel-mode-btn:disabled{cursor:progress;opacity:.6}.travel-mode-btn.active:disabled{opacity:.85}.travel-mode-spinner{width:14px;height:14px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.travel-mode-label{display:inline-flex;flex-direction:column;align-items:center;line-height:1.1;gap:2px}.travel-mode-eta{font-size:.7rem;font-weight:500;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.travel-mode-btn.active .travel-mode-eta{color:var(--text-brand);font-weight:600}.route-tag--eta{border-color:var(--tag-eta-border);color:var(--tag-eta-color);background:var(--tag-eta-bg)}.route-tag--cameras{border-color:rgba(239,68,68,.45);color:#b91c1c;background:rgba(239,68,68,.1);font-weight:600}.speed-camera-popup .mapboxgl-popup-content{border-radius:12px;padding:10px 14px;font-size:.85rem;line-height:1.4;box-shadow:0 6px 20px rgba(0,0,0,.18)}.speed-camera-popup .mapboxgl-popup-content strong{color:#b91c1c}.route-alternatives{margin-top:16px}.route-alternatives-title{margin:0 0 10px 2px;font-size:.82rem;color:var(--text-brand);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.route-alternatives-list{display:grid;grid-gap:8px;gap:8px}.route-option{width:100%;border:1px solid var(--trip-border);border-radius:14px;background:var(--option-bg);color:var(--text-input);text-align:start;padding:11px 12px;cursor:pointer;transition:all .2s ease}.route-option:hover{background:var(--hover-bg);transform:translateY(-1px);box-shadow:0 6px 14px rgba(0,0,0,.08)}.route-option.active{background:var(--option-active-bg);border-color:var(--option-active-border);box-shadow:0 6px 14px rgba(59,130,246,.15)}.route-option-header{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.route-option-label{font-weight:700;font-size:.9rem;color:var(--text-brand)}.route-option-time{font-weight:700;font-size:.9rem;color:var(--text-primary)}.route-option-distance{margin-top:4px;font-size:.82rem;color:var(--text-muted)}.insights-pane{background:linear-gradient(135deg,var(--insights-bg-start) 0,var(--insights-bg-end) 100%);border-radius:18px;border:1px solid var(--insights-border);padding:18px;box-shadow:0 4px 20px rgba(14,165,233,.1);animation:fadeIn .4s ease-out}.insights-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.insights-title{margin:0;color:var(--insights-title);font-size:1.05rem;font-weight:700}.insights-text{margin:0;font-size:.95rem;color:var(--insights-text);line-height:1.6}.transit-summary{background:linear-gradient(135deg,var(--insights-bg-start) 0,var(--insights-bg-end) 100%);border-radius:18px;border:1px solid var(--insights-border);padding:18px;box-shadow:0 4px 20px rgba(14,165,233,.1);animation:fadeIn .4s ease-out}.transit-summary-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.transit-summary-icon{color:var(--text-primary);flex:0 0 auto}.transit-summary-title{margin:0;color:var(--insights-title);font-size:1.05rem;font-weight:700}.transit-summary-total{-webkit-margin-start:auto;margin-inline-start:auto;font-size:.9rem;font-weight:600;color:var(--insights-title);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.transit-walk-pill{display:inline-block;margin:0 0 8px;padding:4px 10px;font-size:.78rem;font-weight:600;color:#b45309;background:rgba(234,179,8,.12);border:1px solid rgba(234,179,8,.35);border-radius:999px}.transit-legs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.transit-leg{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:hsla(0,0%,100%,.35);font-size:.92rem;color:var(--insights-text)}.transit-leg--walk{opacity:.88}.transit-leg-icon{color:var(--text-muted);flex:0 0 auto}.transit-leg-stripe{display:inline-block;width:4px;height:22px;border-radius:2px;flex:0 0 auto}.transit-leg-text{line-height:1.4}.transit-transfer-note{margin-top:10px;font-size:.85rem;color:var(--text-muted);text-align:center}.transit-no-route{background:var(--insights-bg-start);border:1px solid var(--insights-border);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;animation:fadeIn .4s ease-out}.transit-no-route p{margin:0;font-size:.92rem;color:var(--insights-text);line-height:1.5}.transit-switch-btn{align-self:flex-start;padding:8px 14px;border:1px solid var(--insights-border);background:transparent;color:var(--insights-title);border-radius:10px;font-weight:600;cursor:pointer;transition:background .15s ease}.transit-switch-btn:hover{background:rgba(14,165,233,.08)}.best-time-pane{background:linear-gradient(135deg,var(--insights-bg-start) 0,var(--insights-bg-end) 100%);border-radius:18px;border:1px solid var(--insights-border);padding:18px;box-shadow:0 4px 20px rgba(14,165,233,.1);animation:fadeIn .4s ease-out}.best-time-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.best-time-title{margin:0;color:var(--insights-title);font-size:1.05rem;font-weight:700}.best-time-btn{width:100%;padding:10px 14px;border:1px solid var(--insights-border);background:transparent;color:var(--insights-title);border-radius:10px;font-weight:600;cursor:pointer;transition:background .15s ease}.best-time-btn:hover{background:rgba(14,165,233,.08)}.best-time-error,.best-time-loading{display:flex;align-items:center;gap:10px;font-size:.95rem;color:var(--insights-text)}.best-time-error{flex-direction:column;align-items:stretch}.best-time-disabled{font-size:.9rem;color:var(--insights-text);opacity:.8;text-align:center}.best-time-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.best-time-row{display:grid;grid-template-columns:1fr auto auto;grid-gap:12px;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;font-size:.9rem;background:hsla(0,0%,100%,.35);color:var(--insights-text)}.best-time-row--fastest{background:var(--accent-soft);border:1px solid var(--accent-soft-border);font-weight:600}.best-time-depart,.best-time-eta{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.best-time-eta{color:var(--insights-title)}.best-time-delta{font-size:.85rem;opacity:.85}.saved-trips-pane{display:flex;flex-direction:column;gap:4px}.recent-trips-pane{margin-bottom:12px}.saved-trips-title{font-size:.85rem;font-weight:700;color:var(--text-brand);text-transform:uppercase;letter-spacing:.5px;margin-top:0;margin-bottom:12px}.recent-trips-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.recent-trips-header .saved-trips-title{margin-bottom:0;opacity:.75}.recent-clear-btn{background:transparent;border:none;cursor:pointer;font-size:.78rem;color:var(--text-muted);padding:2px 8px;border-radius:8px}.recent-clear-btn:hover{color:var(--text-brand);background:var(--hover-bg)}.trip-card--recent{opacity:.9}.waypoints-list{display:flex;flex-direction:column;gap:8px;margin:4px 0}.waypoint-row{display:grid;grid-template-columns:auto 1fr auto;grid-gap:6px;gap:6px;align-items:end;transition:opacity .15s ease,transform .15s ease}.waypoint-row:has(.autocomplete-wrapper):not(:has(.waypoint-drag-handle)){grid-template-columns:1fr auto}.waypoint-drag-handle{align-self:end;margin-bottom:4px;width:24px;height:32px;border:1px solid var(--trip-border);border-radius:8px;background:transparent;color:var(--text-muted);cursor:-webkit-grab;cursor:grab;font-size:.85rem;line-height:1;letter-spacing:-1px;display:inline-flex;align-items:center;justify-content:center;-moz-user-select:none;user-select:none;-webkit-user-select:none}.waypoint-drag-handle:hover{color:var(--text-brand);border-color:var(--text-brand);background:var(--hover-bg)}.waypoint-drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.waypoint-row.is-dragging{opacity:.45}.waypoint-row.is-drag-target{transform:translateY(-2px);box-shadow:0 4px 14px rgba(99,102,241,.18);border-radius:12px}.waypoint-remove-btn{background:transparent;border:1px solid var(--trip-border);border-radius:10px;cursor:pointer;color:var(--text-muted);width:32px;height:32px;align-self:end;font-size:.85rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;margin-bottom:4px;transition:all .15s ease}.waypoint-remove-btn:hover{color:#ef4444;border-color:#ef4444;background:rgba(239,68,68,.08)}.waypoint-add-btn{background:transparent;border:1px dashed var(--trip-border);border-radius:10px;cursor:pointer;color:var(--text-muted);padding:6px 12px;font-size:.82rem;font-weight:500;align-self:flex-start;transition:all .15s ease}.waypoint-add-btn:hover{color:var(--text-brand);border-color:var(--text-brand);background:var(--hover-bg)}.multi-stop-metro-note{font-size:.8rem;color:var(--text-muted);background:rgba(234,179,8,.12);border:1px solid rgba(234,179,8,.3);padding:6px 10px;border-radius:8px;margin:6px 0}.prayer-pill-wrap{position:relative}.prayer-pill{background:var(--pill-bg);border:1px solid var(--card-border);color:var(--text-primary);border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:500;cursor:pointer;line-height:1.2;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.prayer-pill:hover{background:var(--hover-bg);border-color:var(--text-muted)}.prayer-pill.is-soon{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.38);color:#047857}[data-theme=dark] .prayer-pill.is-soon{color:#6ee7b7}.prayer-pill-panel{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;padding:8px;background:var(--trip-bg);border:1px solid var(--trip-border);border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:2px;z-index:20}.prayer-pill-hijri{font-size:.74rem;font-weight:600;letter-spacing:.02em;color:var(--text-muted);text-align:center;padding:2px 6px 6px;margin-bottom:4px;border-bottom:1px solid var(--trip-border)}.prayer-pill-row{display:flex;justify-content:space-between;gap:12px;padding:4px 6px;border-radius:6px;font-size:.82rem}.prayer-pill-row.is-next{background:rgba(16,185,129,.12);font-weight:600}.prayer-pill-name{color:var(--text-muted)}.prayer-pill-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.prayer-warning{font-size:.82rem;color:#b45309;background:rgba(234,179,8,.15);border:1px solid rgba(234,179,8,.4);padding:6px 10px;border-radius:8px;margin:6px 0 10px}.prayer-nearest-mosque-btn{margin-top:6px;width:100%;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.35);color:#047857;border-radius:10px;padding:6px 8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s ease}.prayer-nearest-mosque-btn:hover:not(:disabled){background:rgba(16,185,129,.22)}.prayer-nearest-mosque-btn:disabled{opacity:.5;cursor:not-allowed}.prayer-nearest-mosque-error{margin-top:4px;font-size:.78rem;color:#b91c1c;text-align:center}.offline-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--page-bg,#f8fafc)}.offline-card{max-width:420px;text-align:center;background:var(--trip-bg);border:1px solid var(--trip-border);border-radius:20px;padding:32px 24px;box-shadow:0 10px 30px rgba(0,0,0,.08)}.offline-icon{color:var(--text-muted);margin:0 auto 8px}.offline-title{font-size:1.4rem;font-weight:700;margin:8px 0 12px}.offline-body{font-size:.95rem;color:var(--text-muted);margin:8px 0;line-height:1.5}.offline-retry{display:inline-block;margin-top:16px;background:rgba(16,185,129,.18);border:1px solid rgba(16,185,129,.45);color:#047857;border-radius:999px;padding:8px 22px;font-weight:600;text-decoration:none;font-size:.9rem}.offline-retry:hover{background:rgba(16,185,129,.28)}[data-theme=dark] .offline-retry{color:#6ee7b7}.weather-pill-wrap{position:relative}.weather-pill{background:var(--pill-bg);border:1px solid var(--card-border);color:var(--text-primary);border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:500;cursor:pointer;line-height:1.2;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.weather-pill:hover{background:var(--hover-bg);border-color:var(--text-muted)}.weather-pill.is-dust{background:var(--accent-soft);border-color:var(--accent-soft-border);color:var(--accent)}.weather-pill.is-dust:hover{background:var(--accent-soft);border-color:var(--accent)}.weather-pill-panel{position:absolute;top:calc(100% + 6px);inset-inline-end:0;min-width:200px;padding:8px;background:var(--trip-bg);border:1px solid var(--trip-border);border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:2px;z-index:20}.weather-pill-headline{font-size:.86rem;font-weight:600;text-align:center;padding:2px 6px 6px;margin-bottom:4px;border-bottom:1px solid var(--trip-border);display:flex;align-items:center;justify-content:center;gap:6px}.weather-pill-dust-tag{font-size:.72rem;color:var(--accent);font-weight:500}.weather-pill-dust-warn{font-size:.78rem;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft-border);padding:6px 10px;border-radius:8px;margin:4px 0 8px;text-align:center}.weather-pill-row{display:flex;justify-content:space-between;gap:12px;padding:4px 6px;border-radius:6px;font-size:.82rem}.weather-pill-name{color:var(--text-muted)}.weather-pill-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@keyframes lucide-spin{to{transform:rotate(1turn)}}.lucide-spin{animation:lucide-spin .9s linear infinite}.autocomplete-item-icon{color:var(--text-muted);-webkit-margin-end:6px;margin-inline-end:6px;vertical-align:-2px}.place-rating-star{color:var(--accent);fill:var(--accent)}.best-time-depart,.place-distance,.recent-destination-chip-text,.search-history-chip-text,.trip-load-btn{display:inline-flex;align-items:center;gap:6px}.go-btn{display:inline-flex}.map-floating-btn{background:var(--pill-bg);border:1px solid var(--card-border);color:var(--text-primary);box-shadow:0 2px 8px rgba(15,23,42,.1)}.map-floating-btn:hover{background:var(--hover-bg);border-color:var(--text-muted)}.map-floating-btn.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}[data-theme=dark] .map-floating-btn.active{background:#f1f5f9;color:#0f172a;border-color:#f1f5f9}.map-floating-btn-text{font-size:.78rem;font-weight:500;letter-spacing:.01em;padding:0 6px}html[lang=en] body{font-family:var(--font-geist-sans),var(--font-cairo),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}html[lang=ar] body{font-family:var(--font-cairo),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}.place-search-section{margin-top:16px;margin-bottom:12px}.place-search-wrap{position:relative}.place-search-input-row{position:relative;display:flex;align-items:center}.place-search-icon{position:absolute;inset-inline-start:14px;pointer-events:none;color:var(--text-muted);display:inline-flex;align-items:center}.place-search-input.glass-input{-webkit-padding-start:40px;padding-inline-start:40px;-webkit-padding-end:40px;padding-inline-end:40px}.place-search-clear-btn{position:absolute;inset-inline-end:10px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;width:26px;height:26px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;transition:background .15s ease,color .15s ease}.place-search-clear-btn:hover{background:var(--hover-bg);color:var(--text-brand)}.place-search-dropdown{left:0;right:0}.recent-destination-chips,.search-history-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.recent-destination-chip,.search-history-chip{display:inline-flex;align-items:center;background:var(--pill-bg);border:1px solid var(--glass-border);border-radius:999px;font-size:.78rem;overflow:hidden;max-width:100%;transition:background .15s ease}.recent-destination-chip:hover,.search-history-chip:hover{background:var(--hover-bg)}.recent-destination-chip-text,.search-history-chip-text{background:transparent;border:none;cursor:pointer;padding:6px 4px 6px 10px;color:var(--text-brand);font-size:inherit;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-history-chip-remove{background:transparent;border:none;cursor:pointer;padding:4px 8px 4px 4px;color:var(--text-muted);font-size:.7rem;line-height:1}.search-history-chip-remove:hover{color:#b91c1c}.recent-destination-chips{margin-top:0;margin-bottom:8px}.trip-card{width:100%;display:flex;align-items:center;justify-content:space-between;padding:6px 6px 6px 14px;background:var(--trip-bg);border:1px solid var(--trip-border);border-radius:16px;transition:transform .18s cubic-bezier(.16,1,.3,1),border-color .18s ease,box-shadow .18s ease;box-shadow:0 1px 3px rgba(15,23,42,.04)}.trip-card:hover{border-color:var(--text-muted);box-shadow:0 4px 12px rgba(15,23,42,.08);background:var(--hover-bg);transform:translateY(-1px);box-shadow:0 6px 15px rgba(0,0,0,.08)}.trip-load-btn{flex:1 1;gap:12px;background:transparent;text-align:start;font-size:.95rem;font-weight:600;color:var(--text-brand);padding:8px 0}.trip-delete-btn,.trip-load-btn{display:flex;align-items:center;border:none;cursor:pointer}.trip-delete-btn{background:var(--delete-btn-bg);color:#ef4444;border-radius:12px;width:36px;height:36px;justify-content:center;transition:all .2s ease}.trip-delete-btn:hover{background:#ef4444;color:#fff;transform:scale(1.05)}.trip-delete-btn.confirming{width:auto;background:#ef4444;color:#fff;font-size:.72rem;font-weight:700;padding:0 10px;animation:confirmPulse .8s ease-in-out infinite alternate}@keyframes confirmPulse{0%{opacity:1}to{opacity:.7}}.category-bar-container{position:absolute;top:24px;inset-inline-start:448px;inset-inline-end:24px;display:flex;gap:4px;overflow-x:auto;white-space:nowrap;z-index:10;padding:4px 4px 8px}.category-bar-container::-webkit-scrollbar{display:none}.category-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;cursor:pointer;background:transparent;border:1px solid transparent;box-shadow:none;font-size:.82rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;transition:background .18s ease,border-color .18s ease,color .18s ease}.category-pill:hover{background:var(--hover-bg);color:var(--text-primary)}.category-pill.active{background:var(--accent-soft);border-color:var(--accent-soft-border);color:var(--accent)}.category-pill--nearme{border-color:var(--card-border)}.category-pill--nearme.active{background:var(--accent-soft);border-color:var(--accent-soft-border);color:var(--accent)}.category-pill--nearme:disabled{opacity:.6;cursor:progress}.category-pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--accent-fg);font-size:.7rem;font-weight:600;line-height:1}.category-skeleton-container{position:absolute;top:82px;inset-inline-start:448px;z-index:11;display:flex;gap:12px}.category-skeleton-card{width:120px;padding:12px;border-radius:14px;background:var(--pill-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:0 4px 15px rgba(0,0,0,.05);display:flex;flex-direction:column;gap:8px}.skeleton-shimmer{border-radius:6px;background:linear-gradient(90deg,var(--card-bg) 25%,var(--hover-bg) 50%,var(--card-bg) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.skeleton-icon{width:32px;height:32px;border-radius:50%}.skeleton-text{width:80px;height:12px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.category-empty-state{position:absolute;top:70px;inset-inline-start:448px;z-index:11;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:var(--card-bg);border:1px solid var(--card-border);box-shadow:0 2px 8px rgba(15,23,42,.06);color:var(--text-secondary);font-size:.82rem;font-weight:500;animation:fadeIn .2s ease-out both}.category-empty-state>svg{color:var(--text-muted);flex:0 0 auto}.place-card{position:absolute;top:88px;inset-inline-end:24px;z-index:20;width:360px;background:var(--place-card-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;overflow:hidden;box-shadow:0 20px 50px var(--glass-shadow);animation:slideInRight .4s cubic-bezier(.16,1,.3,1)}.place-image{width:100%;height:200px;object-fit:cover}.place-image-fallback{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background:var(--hover-bg);border-bottom:1px solid var(--card-border);position:relative;overflow:hidden}.place-image-fallback-icon{color:var(--text-muted);position:relative;z-index:1}.place-content{padding:20px}.place-close{position:absolute;top:16px;inset-inline-end:16px;background:var(--place-close-bg);border:none;border-radius:50%;width:32px;height:32px;font-size:1.2rem;font-weight:500;color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(0,0,0,.1)}.place-title{margin:0 0 8px;font-size:1.4rem;color:var(--text-primary)}.place-rating{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.star{color:#fbbf24}.place-type{font-size:.85rem;color:var(--text-muted);margin-bottom:8px}.place-distance{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;font-weight:600;color:#2d7ef7;background:rgba(45,126,247,.12);padding:3px 10px;border-radius:999px;margin-bottom:16px}.place-about{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin-bottom:20px}.place-quick-actions{display:flex;gap:8px;margin:12px 0 0}.place-quick-action{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border-radius:12px;background:var(--pill-bg);border:1px solid var(--glass-border);color:var(--text-brand);font-size:.85rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:all .15s ease}.place-quick-action:hover{background:var(--hover-bg);border-color:var(--text-brand);transform:translateY(-1px)}.go-btn{width:100%;padding:14px;background:#3b82f6;color:#fff;border:none;border-radius:14px;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s}.go-btn:hover{background:#2563eb;transform:translateY(-2px)}.custom-marker{transition:translate .2s ease,scale .2s ease,filter .2s ease;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.custom-marker--place{width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--text-primary);border:2px solid #fff;border-radius:50%;box-shadow:0 2px 6px rgba(15,23,42,.25);color:#fff;animation:marker-pop-in .22s cubic-bezier(.16,1,.3,1) both}.custom-marker--place>svg{display:block}.custom-marker--place.is-selected{background:var(--accent);box-shadow:0 2px 6px rgba(217,119,87,.4),inset 0 0 0 1.5px hsla(0,0%,100%,.5)}@keyframes marker-pop-in{0%{opacity:0;scale:.7}to{opacity:1;scale:1}}[data-theme=dark] .custom-marker--place{border-color:#1e293b}.route-badge{background:var(--pill-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:20px;padding:6px 12px;font-size:.78rem;font-weight:700;color:var(--text-primary);box-shadow:0 4px 12px rgba(0,0,0,.15);white-space:nowrap;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.custom-marker--dest-pin{width:28px;height:28px;background:var(--accent);border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 8px rgba(15,23,42,.25);cursor:pointer}.custom-marker:hover{translate:0 -2px;scale:1.04}.custom-marker.is-selected{translate:0 -4px;scale:1.1;filter:drop-shadow(0 8px 14px rgba(217,119,87,.4))}.category-pill:focus-visible,.custom-marker:focus-visible,.go-btn:focus-visible,.place-close:focus-visible,.route-btn:focus-visible,.save-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}@keyframes slideInRight{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@media (max-width:1200px){.glass-pane{width:320px}.category-bar-container{inset-inline-start:392px;inset-inline-end:16px;top:20px}.category-empty-state,.category-skeleton-container{inset-inline-start:392px;top:76px}.place-card{width:320px;top:84px;inset-inline-end:16px}}@media (max-width:900px){.glass-pane{top:auto;bottom:16px;left:16px;right:16px;width:auto;max-height:88vh;touch-action:pan-y;transition:transform .28s cubic-bezier(.16,1,.3,1);animation:none}.glass-pane[data-sheet=full]{transform:translateY(0)}.glass-pane[data-sheet=half]{transform:translateY(calc(100% - 50vh))}.glass-pane[data-sheet=peek]{transform:translateY(calc(100% - 80px));cursor:pointer}.glass-pane[data-sheet=full] .glass-pane-header{position:-webkit-sticky;position:sticky;top:0;z-index:5}.sheet-handle{display:flex;align-items:center;justify-content:center;min-height:52px;margin:-16px -16px 0;padding:16px 0;cursor:-webkit-grab;cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.sheet-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.sheet-handle-bar{width:48px;height:6px;border-radius:3px;background:var(--text-muted);opacity:.7}.sheet-handle:active .sheet-handle-bar{opacity:1;background:var(--text-brand)}.traffic-toggle{top:72px;bottom:auto;inset-inline-end:16px;width:40px;height:40px;z-index:11}.category-bar-container{top:16px;left:16px;right:16px;z-index:21}.category-empty-state,.category-skeleton-container{top:72px;left:16px;right:16px;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px)}.place-card{top:auto;bottom:16px;left:16px;right:16px;width:auto;max-height:72vh;overflow-y:auto}.place-card .place-image{height:190px}}.tbt-panel{margin-top:12px;border-radius:14px;border:1px solid var(--card-border);background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.tbt-header{width:100%;justify-content:space-between;padding:11px 14px;background:none;border:none;cursor:pointer;color:var(--text-brand);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.tbt-header,.tbt-header-text{display:flex;align-items:center}.tbt-header-text{gap:8px}.tbt-step-count{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:none;letter-spacing:0}.tbt-chevron{transition:transform .2s ease}.tbt-chevron.expanded{transform:rotate(180deg)}.tbt-steps{list-style:none;margin:0;padding:0 8px 8px;max-height:280px;overflow-y:auto}.tbt-steps::-webkit-scrollbar{width:4px}.tbt-steps::-webkit-scrollbar-track{background:transparent}.tbt-steps::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:4px}.tbt-step{display:flex;align-items:flex-start;gap:10px;padding:8px 6px;border-radius:10px;cursor:pointer;transition:background .15s ease;-webkit-border-start:2px solid var(--dot-line);border-inline-start:2px solid var(--dot-line);-webkit-margin-start:8px;margin-inline-start:8px;-webkit-padding-start:12px;padding-inline-start:12px}.tbt-step:hover{background:var(--mode-switcher-bg)}.tbt-step-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-brand)}.tbt-step-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.tbt-step-instruction{font-size:.82rem;font-weight:500;color:var(--text-primary);line-height:1.3}.tbt-step-distance{font-size:.72rem;color:var(--text-muted)}.maneuver-icon{display:block}.routing-container{display:flex;flex-direction:column;gap:0;width:100%}.swap-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:1.5px solid rgba(99,102,241,.3);background:linear-gradient(135deg,rgba(99,102,241,.1),rgba(168,85,247,.1));color:#6366f1;cursor:pointer;flex-shrink:0;align-self:flex-end;margin:3px 0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .2s cubic-bezier(.4,0,.2,1)}.swap-btn:hover{background:linear-gradient(135deg,rgba(99,102,241,.22),rgba(168,85,247,.22));border-color:rgba(99,102,241,.55);box-shadow:0 0 0 3px rgba(99,102,241,.12),0 2px 8px rgba(99,102,241,.18);transform:scale(1.07);color:#4f46e5}.swap-btn:active{transform:scale(.95)}.swap-btn.is-swapping{animation:swapRotate .35s cubic-bezier(.4,0,.2,1) forwards}.routing-container.is-swapping>.input-group:first-child{animation:swapSlideDown .35s cubic-bezier(.4,0,.2,1)}.routing-container.is-swapping>.input-group:nth-child(3){animation:swapSlideUp .35s cubic-bezier(.4,0,.2,1)}@keyframes swapSlideDown{0%{transform:translateY(0);opacity:1}40%{transform:translateY(20px);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes swapSlideUp{0%{transform:translateY(0);opacity:1}40%{transform:translateY(-20px);opacity:.6}to{transform:translateY(0);opacity:1}}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--glass-border);background:var(--card-bg);color:var(--text-brand);cursor:pointer;transition:all .2s ease;flex-shrink:0}.theme-toggle:hover{background:var(--hover-bg);transform:scale(1.08)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid hsla(0,0%,100%,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;will-change:transform}.spinner-label{-webkit-margin-start:8px;margin-inline-start:8px}.route-error{display:flex;align-items:center;padding:10px 12px;background:var(--error-bg);border:1px solid var(--error-border);border-radius:10px;color:var(--error-text);font-size:13px;margin-top:8px;animation:fadeIn .2s ease-out both;gap:8px}.route-error button{background:none;border:none;color:var(--error-text);cursor:pointer;font-size:16px;line-height:1;padding:0;flex-shrink:0}.route-error-actions{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.route-error-icon{color:var(--error-text);flex:0 0 auto}.route-error-text{flex:1 1 auto}.route-error-retry-btn{background:var(--error-text)!important;color:#fff!important;border-radius:8px!important;padding:4px 10px!important;font-size:12px!important;font-weight:600!important;line-height:1.2!important;border:none!important}.route-error-retry-btn:hover{opacity:.9}.onboarding-overlay{position:fixed;inset:0;z-index:200;pointer-events:none}.onboarding-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto}.onboarding-spotlight{position:absolute;border-radius:16px;box-shadow:0 0 0 9999px rgba(15,23,42,.55),0 0 0 4px rgba(99,102,241,.7);pointer-events:none;transition:top .3s ease,left .3s ease,width .3s ease,height .3s ease}.onboarding-card{position:absolute;width:320px;background:#fff;border-radius:16px;padding:18px 18px 14px;box-shadow:0 20px 50px rgba(0,0,0,.3);pointer-events:auto;transition:top .3s ease,left .3s ease}.onboarding-card-step{font-size:.7rem;letter-spacing:1.5px;text-transform:uppercase;color:#6366f1;font-weight:700;margin-bottom:4px}.onboarding-card-title{margin:0 0 6px;font-size:1.05rem;font-weight:700;color:#1e293b}.onboarding-card-body{margin:0 0 14px;font-size:.88rem;color:#475569;line-height:1.45}.onboarding-card-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}.onboarding-skip{background:transparent;border:none;color:#64748b;cursor:pointer;font-size:.85rem;padding:6px 10px;border-radius:8px}.onboarding-skip:hover{background:#f1f5f9;color:#1e293b}.onboarding-next{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;padding:8px 18px;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .12s ease}.onboarding-next:hover{transform:translateY(-1px)}.start-prompt-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .18s ease-out}.start-prompt-card{width:100%;max-width:360px;background:var(--input-focus-bg,#fff);border:1px solid var(--glass-border);border-radius:20px;padding:24px;box-shadow:0 20px 50px rgba(0,0,0,.25);animation:popIn .22s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:8px}.start-prompt-title{margin:0;font-size:1.15rem;font-weight:700;color:var(--text-brand)}.start-prompt-body{margin:0 0 12px;font-size:.9rem;color:var(--text-muted);line-height:1.4}.start-prompt-actions{display:flex;flex-direction:column;gap:8px}.start-prompt-btn{width:100%;padding:12px 16px;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.start-prompt-btn--primary{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.start-prompt-btn--primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}[data-theme=dark] .start-prompt-btn--primary{background:#f1f5f9;color:#0f172a;border-color:#f1f5f9}[data-theme=dark] .start-prompt-btn--primary:hover:not(:disabled){background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.start-prompt-btn--secondary{background:transparent;color:var(--text-secondary);border-color:var(--card-border)}.start-prompt-btn--secondary:hover:not(:disabled){background:var(--hover-bg);color:var(--text-primary);border-color:var(--text-muted)}.start-prompt-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.not-found-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.not-found-card{position:static;width:100%;max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.not-found-icon{color:var(--text-muted)}.not-found-title{margin:0;font-size:1.5rem}.not-found-body{margin:0;color:var(--text-muted)}.not-found-cta{margin-top:8px;padding:10px 18px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;text-decoration:none;font-weight:600;transition:transform .15s ease}.not-found-cta:hover{transform:translateY(-1px)}@keyframes spin{to{transform:rotate(1turn)}}@keyframes swapRotate{0%{transform:rotate(0deg)}to{transform:rotate(180deg)}}.route-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.handoff-btn,.preview-btn,.recenter-btn{display:flex;align-items:center;justify-content:center;gap:8px;flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px);min-width:0;padding:12px 14px;border:1px solid var(--btn-border);border-radius:14px;background:var(--card-bg);color:var(--text-primary);font-size:.95rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background .15s ease,transform .15s ease,box-shadow .15s ease,border-color .15s ease,color .15s ease}.handoff-btn:hover,.preview-btn:hover,.recenter-btn:hover{background:var(--input-focus-bg);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08)}.handoff-btn:focus-visible,.preview-btn:focus-visible,.recenter-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.preview-btn.is-active{background:var(--accent-soft);border-color:var(--accent-soft-border);color:var(--accent)}.preview-btn.is-active:hover{background:var(--accent-soft);border-color:var(--accent)}.route-preview-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;background:transparent;pointer-events:none}.route-preview-progress:before{content:"";display:block;height:100%;background:var(--accent);transform-origin:left center;transform:scaleX(var(--preview-progress,0));transition:transform .12s linear;box-shadow:0 0 12px var(--accent)}[dir=rtl] .route-preview-progress:before{transform-origin:right center}.share-btn{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px);min-width:0;padding:12px 14px;border-radius:14px;background:var(--card-bg);border:1px solid var(--btn-border);color:var(--text-primary);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.share-btn:hover:not(:disabled){background:var(--input-focus-bg);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08)}.share-btn:disabled{opacity:.5;cursor:not-allowed}.tbt-step.is-active{background:rgba(59,130,246,.12);-webkit-border-start:3px solid #2563eb;border-inline-start:3px solid #2563eb}.traffic-toggle{position:absolute;bottom:100px;inset-inline-end:24px;z-index:10;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--glass-border);background:var(--pill-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font-size:1.2rem;cursor:pointer;box-shadow:0 4px 15px rgba(0,0,0,.1);transition:all .2s ease}.traffic-toggle:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,.15)}.traffic-toggle.active{background:var(--pill-active-bg);color:var(--pill-active-color);border-color:var(--pill-active-bg)}.traffic-toggle:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.buildings3d-toggle{position:absolute;bottom:156px;inset-inline-end:24px;z-index:10;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--glass-border);background:var(--pill-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font-size:1.2rem;cursor:pointer;box-shadow:0 4px 15px rgba(0,0,0,.1);transition:all .2s ease}.buildings3d-toggle:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,.15)}.buildings3d-toggle.active{background:var(--pill-active-bg);color:var(--pill-active-color);border-color:var(--pill-active-bg)}.buildings3d-toggle:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}@media (max-width:900px){.buildings3d-toggle{top:176px;bottom:auto;inset-inline-end:16px;width:40px;height:40px;z-index:11}}.locate-me-toggle{position:absolute;bottom:100px;inset-inline-end:24px;z-index:10;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--glass-border);background:var(--pill-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font-size:1.2rem;cursor:pointer;box-shadow:0 4px 15px rgba(0,0,0,.1);transition:all .2s ease;margin-bottom:56px}.locate-me-toggle:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,.15)}.locate-me-toggle:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}@media (max-width:900px){.locate-me-toggle{top:124px;bottom:auto;inset-inline-end:16px;width:40px;height:40px;margin-bottom:0;z-index:11}}.user-location-puck{position:relative;width:18px;height:18px;pointer-events:none}.user-location-dot{background:#2563eb;border:2px solid #fff;box-shadow:0 0 0 1px rgba(37,99,235,.6),0 2px 6px rgba(0,0,0,.25)}.user-location-dot,.user-location-pulse{position:absolute;inset:0;margin:auto;width:14px;height:14px;border-radius:50%}.user-location-pulse{background:rgba(37,99,235,.45);animation:user-pulse 1.8s ease-out infinite}@keyframes user-pulse{0%{transform:scale(1);opacity:.7}to{transform:scale(3.5);opacity:0}}@media (max-width:480px){.glass-pane{bottom:0;left:0;right:0;width:100%;max-height:45vh;border-radius:24px 24px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom, 0px))}.glass-pane-header{margin:-16px -16px 0;padding:16px 16px 10px;border-radius:24px 24px 0 0;top:-16px}.title{font-size:1.4rem;margin-bottom:16px;flex-wrap:wrap;row-gap:8px;min-width:0}.title>span:last-child{flex-shrink:0}.category-bar-container{top:12px;left:12px;right:12px;gap:8px}.category-pill{padding:10px 14px;font-size:.85rem;min-height:44px}.category-empty-state,.category-skeleton-container{top:64px;left:12px;right:12px}.glass-input{padding:12px 14px;font-size:.95rem;min-height:44px}.reset-btn,.route-btn,.save-btn{min-height:44px;padding:12px;font-size:.9rem}.button-group{gap:8px;margin-top:16px}.gps-btn,.place-close,.swap-btn,.theme-toggle{width:44px;height:44px}.place-close{background:transparent;border:none;position:relative;display:flex;align-items:center;justify-content:center}.place-close:before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--place-close-bg);z-index:-1}.place-close>svg{position:relative;z-index:1}.travel-mode-btn{min-height:36px;padding:8px 6px;font-size:.7rem}.place-card{max-height:65vh;border-radius:24px 24px 0 0}.place-card .place-image{height:160px}.route-actions{flex-direction:column;gap:8px}.trip-load-btn{font-size:.85rem}.tbt-steps{max-height:180px}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}[dir=rtl] .place-card{animation-name:slideInFromLeft}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@font-face{font-family:__Cairo_45314e;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/_next/static/media/350b852752f8489d-s.p.woff2) format("woff2");unicode-range:U+06??,U+0750-077f,U+0870-088e,U+0890-0891,U+0897-08e1,U+08e3-08ff,U+200c-200e,U+2010-2011,U+204f,U+2e41,U+fb50-fdff,U+fe70-fe74,U+fe76-fefc,U+102e0-102fb,U+10e60-10e7e,U+10ec2-10ec4,U+10efc-10eff,U+1ee00-1ee03,U+1ee05-1ee1f,U+1ee21-1ee22,U+1ee24,U+1ee27,U+1ee29-1ee32,U+1ee34-1ee37,U+1ee39,U+1ee3b,U+1ee42,U+1ee47,U+1ee49,U+1ee4b,U+1ee4d-1ee4f,U+1ee51-1ee52,U+1ee54,U+1ee57,U+1ee59,U+1ee5b,U+1ee5d,U+1ee5f,U+1ee61-1ee62,U+1ee64,U+1ee67-1ee6a,U+1ee6c-1ee72,U+1ee74-1ee77,U+1ee79-1ee7c,U+1ee7e,U+1ee80-1ee89,U+1ee8b-1ee9b,U+1eea1-1eea3,U+1eea5-1eea9,U+1eeab-1eebb,U+1eef0-1eef1}@font-face{font-family:__Cairo_45314e;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/_next/static/media/5ec84f17416dda4d-s.woff2) format("woff2");unicode-range:U+0100-02ba,U+02bd-02c5,U+02c7-02cc,U+02ce-02d7,U+02dd-02ff,U+0304,U+0308,U+0329,U+1d00-1dbf,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:__Cairo_45314e;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/_next/static/media/01f0c602c274ea55-s.p.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:__Cairo_Fallback_45314e;src:local("Arial");ascent-override:136.94%;descent-override:60.01%;line-gap-override:0.00%;size-adjust:95.15%}.__className_45314e{font-family:__Cairo_45314e,__Cairo_Fallback_45314e;font-style:normal}.__variable_45314e{--font-cairo:"__Cairo_45314e","__Cairo_Fallback_45314e"}@font-face{font-family:__GeistSans_245d8d;src:url(/_next/static/media/27834908180db20f-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:__GeistSans_Fallback_245d8d;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_245d8d{font-family:__GeistSans_245d8d,__GeistSans_Fallback_245d8d}.__variable_245d8d{--font-geist-sans:"__GeistSans_245d8d","__GeistSans_Fallback_245d8d"}