.base-button[data-v-3931860b]{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);font-family:inherit;font-weight:var(--font-weight-semibold);border:1px solid transparent;border-radius:var(--button-radius);transition:background-color .2s,transform .15s,opacity .15s}.base-button[data-v-3931860b]:disabled{opacity:.5;cursor:not-allowed}.base-button--primary[data-v-3931860b]{background-color:var(--color-primary);color:var(--color-on-primary)}.base-button--primary[data-v-3931860b]:hover:not(:disabled){transform:scale(1.02)}.base-button--primary-outline[data-v-3931860b]{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.base-button--primary-outline[data-v-3931860b]:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary) 8%,transparent)}.base-button--secondary[data-v-3931860b]{background-color:transparent;color:var(--color-on-surface);border-color:var(--color-outline-variant)}.base-button--secondary[data-v-3931860b]:hover:not(:disabled){background-color:var(--color-surface-variant)}.base-button--danger[data-v-3931860b]{background-color:var(--color-error);color:var(--color-on-error)}.base-button--danger[data-v-3931860b]:hover:not(:disabled){transform:scale(1.02)}.base-button--danger-outline[data-v-3931860b]{background-color:transparent;color:var(--color-error);border-color:var(--color-error)}.base-button--danger-outline[data-v-3931860b]:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-error) 8%,transparent)}.base-button--text[data-v-3931860b]{background-color:transparent;color:var(--color-on-surface-variant)}.base-button--text[data-v-3931860b]:hover:not(:disabled){background-color:var(--color-surface-variant)}.base-button--sm[data-v-3931860b]{padding:var(--button-padding-sm);font-size:var(--button-font-size-sm)}.base-button--md[data-v-3931860b]{padding:var(--button-padding-md);font-size:var(--button-font-size-md)}.base-button--lg[data-v-3931860b]{padding:var(--button-padding-lg);font-size:var(--button-font-size-lg)}.banner[data-v-da129b36]{position:fixed;bottom:0;left:0;right:0;background-color:var(--color-surface);border-top:1px solid var(--color-outline-variant);box-shadow:var(--shadow-lg);z-index:300;padding:var(--spacing-lg) var(--spacing-xl);padding-bottom:calc(var(--spacing-lg) + var(--safe-bottom))}.content[data-v-da129b36]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);max-width:600px;margin:0 auto}.text[data-v-da129b36]{font-size:var(--font-size-sm);color:var(--color-on-surface-variant);flex:1}.actions[data-v-da129b36]{display:flex;gap:var(--spacing-md);flex-shrink:0}.banner-enter-active[data-v-da129b36],.banner-leave-active[data-v-da129b36]{transition:transform .3s ease}.banner-enter-from[data-v-da129b36],.banner-leave-to[data-v-da129b36]{transform:translateY(100%)}.banner[data-v-bff80b52]{position:fixed;bottom:0;left:0;right:0;background-color:var(--color-surface);border-top:1px solid var(--color-outline-variant);box-shadow:var(--shadow-lg);z-index:300;padding:var(--spacing-lg) var(--spacing-xl);padding-bottom:calc(var(--spacing-lg) + var(--safe-bottom))}.content[data-v-bff80b52]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);max-width:600px;margin:0 auto}.text[data-v-bff80b52]{font-size:var(--font-size-sm);color:var(--color-on-surface-variant);flex:1}.actions[data-v-bff80b52]{display:flex;gap:var(--spacing-md);flex-shrink:0}.banner-enter-active[data-v-bff80b52],.banner-leave-active[data-v-bff80b52]{transition:transform .3s ease}.banner-enter-from[data-v-bff80b52],.banner-leave-to[data-v-bff80b52]{transform:translateY(100%)}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,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}:root{--slate-50: #f8fafc;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-600: #475569;--slate-700: #334155;--slate-900: #0f172a;--blue-500: #3b82f6;--blue-700: #1d4ed8;--blue-900: #1e3a8a;--red-50: #fef2f2;--red-600: #dc2626;--red-900: #7f1d1d;--green-600: #16a34a;--green-700: #2e7d32;--amber-500: #f59e0b;--orange-500: #f97316;--red-700: #c62828;--white: #ffffff;--white-a25: rgba(255, 255, 255, .25);--spacing-xxs: 4px;--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 20px;--spacing-xl: 24px;--spacing-xxl: 32px;--spacing-3xl: 48px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 9999px;--radius-round: 50%;--color-backdrop: rgba(15, 23, 42, .35);--color-backdrop-strong: rgba(0, 0, 0, .6);--color-on-contrast: var(--white);--color-contrast-surface: rgba(255, 255, 255, .12);--color-contrast-surface-hover: rgba(255, 255, 255, .22);--color-contrast-outline: rgba(255, 255, 255, .55);--color-contrast-outline-strong: rgba(255, 255, 255, .85);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .1);--shadow-md: 0 2px 4px rgba(15, 23, 42, .06), 0 4px 8px rgba(15, 23, 42, .1), 0 1px 2px rgba(15, 23, 42, .04);--shadow-lg: 0 4px 6px rgba(15, 23, 42, .05), 0 10px 20px rgba(15, 23, 42, .1), 0 2px 4px rgba(15, 23, 42, .04);--shadow-control: 0 1px 2px rgba(0, 0, 0, .15);--color-primary: var(--slate-600);--color-primary-light: var(--slate-500);--color-primary-dark: var(--slate-700);--color-on-primary: var(--white);--color-accent: var(--blue-500);--color-surface: var(--slate-50);--color-on-surface: var(--slate-900);--color-surface-variant: var(--slate-200);--color-on-surface-variant: var(--slate-600);--color-outline: var(--slate-400);--color-outline-variant: var(--slate-300);--color-background: var(--white);--color-on-background: var(--slate-900);--color-error: var(--red-600);--color-on-error: var(--white);--color-error-container: var(--red-50);--color-on-error-container: var(--red-900);--color-success: var(--green-600);--color-on-success: var(--white);--color-warning: var(--amber-500);--color-friend: var(--orange-500);--color-route-start: var(--green-700);--color-route-end: var(--red-700);--color-fab-surface: var(--blue-900);--color-fab-surface-strong: var(--blue-700);--color-fab-on-surface: var(--white);--color-fab-border: var(--white-a25);--icon-size-xs: 16px;--icon-size-sm: 18px;--icon-size-md: 20px;--icon-size-lg: 24px;--icon-size-xl: 48px;--icon-button-size-sm: 32px;--icon-button-size-md: 40px;--icon-button-size-lg: 48px;--button-radius: 12px;--button-padding-sm: var(--spacing-xs) var(--spacing-md);--button-padding-md: var(--spacing-md);--button-padding-lg: var(--spacing-md) var(--spacing-xl);--button-font-size-sm: var(--font-size-sm);--button-font-size-md: var(--font-size-base);--button-font-size-lg: var(--font-size-lg)}:root{--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.4;--line-height-relaxed: 1.6}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%}html{background-color:var(--color-background)}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-on-background);background-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:-webkit-fill-available;min-height:100lvh}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit}input,textarea{font-family:inherit}
