*,*:before,*:after{box-sizing:border-box}:root{font-family:Nunito,system-ui,sans-serif;line-height:1.5;font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-bg: #fffef0;--color-surface: #fffdf5;--color-input-bg: #fffdf0;--color-text: #3d2c00;--color-accent: #ffd600;--color-accent-dim: #e8c000;--color-accent-hover: #fff9c4;--color-placeholder: #c8a84b;--color-subtext: #a87500;--color-link: #c97a00;--color-link-hover: #a86200;--color-card-border: #ffffff;--color-card-shadow: #e8c000;--color-divider: #f0dc60;--color-overlay: rgba(61,44,0,.3);--color-border: #e8c000}body{margin:0;min-height:100vh;min-height:100dvh;min-width:320px;color:var(--color-text);background-color:var(--color-bg);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);transition:background-color .3s,color .3s}body.shade-mode{color:#263748;--color-surface: #d8e3ec;--color-input-bg: #ebf1f6;--color-text: #263748;--color-accent: #5e8fad;--color-accent-dim: #84aeca;--color-accent-hover: #c4d9e8;--color-placeholder: #7a9db5;--color-subtext: #4a7090;--color-link: #4a7090;--color-link-hover: #325470;--color-card-shadow: #84aeca;--color-divider: #c8d8e8;--color-overlay: rgba(20,40,60,.35);--color-border: #c8d8e8}body.night-mode{color:#ddeaf5;--color-bg: #0d1a27;--color-surface: #162536;--color-input-bg: #111f2e;--color-text: #eef4fb;--color-accent: #5b9ec8;--color-accent-dim: #2d6898;--color-accent-hover: #1a3a56;--color-placeholder: #6a98b8;--color-subtext: #9ab5cc;--color-link: #6ab4dc;--color-link-hover: #88ccf0;--color-card-border: rgba(255,255,255,.14);--color-card-shadow: #1e4060;--color-divider: rgba(255,255,255,.09);--color-overlay: rgba(0,0,0,.65);--color-border: rgba(255,255,255,.14)}#root{height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden}a{font-weight:700;color:var(--color-link);text-decoration:none}a:hover{color:var(--color-link-hover);text-decoration:underline}h1,h2,h3{font-family:Poppins,sans-serif;font-weight:700;margin:0 0 12px;color:var(--color-text);line-height:1.2}input[type=text],input[type=email],input[type=password]{display:block;width:100%;background:var(--color-input-bg);border:2px solid #ffffff;border-radius:10px;padding:8px 12px;font-size:16px;font-family:Nunito,sans-serif;font-weight:600;color:var(--color-text);outline:none;box-shadow:none;transition:box-shadow .15s,border-color .15s;box-sizing:border-box}input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-dim)}input::placeholder{color:var(--color-placeholder);font-weight:500}.address-input{padding-top:5px;padding-bottom:5px}button{border-radius:999px;border:2px solid #ffffff;padding:.42em 1.2em;font-size:.875em;font-weight:700;font-family:Nunito,sans-serif;background-color:var(--color-accent);color:var(--color-text);cursor:pointer;box-shadow:none;transition:transform .1s,background-color .3s;white-space:nowrap;line-height:1.4}button:hover{transform:translate(-1px,-1px)}button:active{transform:translate(1px,1px)}button.btn-outline{background:var(--color-bg);border:2px solid #ffffff;box-shadow:none;color:var(--color-text)}button.btn-outline:hover{background:var(--color-accent-hover)}button.btn-outline:active{transform:translate(1px,1px)}button.btn-danger{background:#ff5a3c;border-color:#fff;color:#fff;box-shadow:none}button.btn-danger:hover{background:#e8432a}body.night-mode button,body.night-mode input[type=text],body.night-mode input[type=email],body.night-mode input[type=password]{border-color:var(--color-card-border)}body.night-mode input:focus{box-shadow:0 0 0 2px var(--color-accent)}.logo-dark,body.night-mode .logo-light{display:none}body.night-mode .logo-dark{display:inline}body.night-mode .map-wrapper{border-color:var(--color-card-border)}body.night-mode .auth-card{border-color:var(--color-card-border);box-shadow:6px 6px 0 var(--color-card-shadow)}.page-container{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px;background-color:var(--color-bg)}.content-inner{max-width:600px;width:100%;margin:0 auto}.account-inner{max-width:480px}.routes-grid{display:flex;flex-direction:column;gap:14px}.spots-grid{display:flex;flex-direction:column;gap:10px}.spot-card-row{display:flex;align-items:center;gap:14px}.spot-icon-wrap{width:38px;height:38px;border-radius:50%;background:var(--color-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.spot-card-text{flex:1;min-width:0}.spot-addr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spot-card-actions{display:flex;gap:6px;flex-shrink:0}.plan-layout{flex:1;display:flex;flex-direction:column;padding:6px 16px;min-height:0;overflow:hidden;background-color:var(--color-bg);transition:background-color .3s}.map-wrapper{flex:1;min-height:0;width:100%;overflow:hidden;position:relative;border-radius:16px;border:2.5px solid #ffffff}.map-wrapper .gm-bundled-control{transform:scale(.75) translate(6px) translateY(-33px);transform-origin:bottom right}.map-wrapper .gm-style-mtc,.map-wrapper .gm-style-mtc-bb{zoom:.75}.auth-card{background:var(--color-surface);border:2.5px solid #ffffff;border-radius:24px;padding:36px 32px;width:100%;max-width:380px;box-shadow:6px 6px 0 var(--color-accent-dim);transition:box-shadow .3s}.auth-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top,0px)) 16px max(16px,env(safe-area-inset-bottom,0px));background:var(--color-overlay);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:auth-modal-fade .2s ease-out}.auth-modal-card{position:relative;max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:auth-modal-rise .22s ease-out}.auth-modal-close{position:absolute;top:12px;right:12px;width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:transparent;color:var(--color-subtext);font-size:1.15em}.auth-modal-close:hover{background:var(--color-accent-hover);color:var(--color-text)}button.auth-switch{background:none;border:none;padding:0;border-radius:0;font-size:inherit;font-weight:700;color:var(--color-link)}button.auth-switch:hover{color:var(--color-link-hover);text-decoration:underline}@keyframes auth-modal-fade{0%{opacity:0}to{opacity:1}}@keyframes auth-modal-rise{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.auth-modal-backdrop,.auth-modal-card{animation:none}}.field{margin-bottom:14px}.field label{display:block;margin-bottom:5px;font-weight:800;font-size:.75em;color:var(--color-subtext);text-transform:uppercase;letter-spacing:.06em}.home-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}.home-left{display:flex;flex-direction:column;align-items:center}.home-cta{display:flex;flex-direction:column;align-items:center;gap:12px}.home-logo{height:90px}.home-headline{display:none}.home-tagline{font-size:1.05em;color:var(--color-subtext);font-weight:700;line-height:1.7;margin-bottom:28px;max-width:300px}.home-steps{display:none}@media (min-width: 1024px){.home-inner{flex-direction:row;align-items:center;gap:80px;text-align:left}.home-left{align-items:flex-start}.home-logo{height:130px}.home-headline{display:block;font-size:2.6em;font-weight:900;color:var(--color-text);margin:0 0 10px;line-height:1.1}.home-tagline{font-size:1.15em;max-width:360px}.home-cta{align-items:flex-start}.home-steps{display:flex;flex-direction:column;width:400px;flex-shrink:0;padding:32px 28px;background:var(--color-surface);border:2px solid var(--color-card-border);border-radius:24px;box-shadow:6px 6px 0 var(--color-accent-dim)}}.about-inner{max-width:620px;margin:0 auto;padding:0 16px 48px;display:flex;flex-direction:column;gap:24px}.about-hero,.about-cta{text-align:center;display:flex;flex-direction:column;align-items:center}.about-steps-card{margin:0 -32px;width:calc(100% + 64px);padding:24px 32px 26px;background:rgba(255,214,0,.12)}.about-step-circle{width:32px;height:32px}.about-step-icon{font-size:1.05em}.about-step-number{display:none}.about-steps-row{display:flex;flex-direction:column;gap:18px}.about-step-item{display:flex;align-items:center;gap:14px;min-height:48px}.about-step-label{flex:1}.about-step-connector-v{display:none}.about-feature-list,.about-feature-items{display:flex;flex-direction:column;gap:20px}.about-feature-row{display:flex;gap:14px;align-items:flex-start}.about-feature-cta{position:relative;overflow:hidden;background:rgba(255,214,0,.1);border-radius:20px;padding:52px 20px 32px;display:flex;align-items:flex-start;justify-content:center;min-height:160px}.about-cta-sun-bg{position:absolute;font-size:9em;color:#ffd60040;top:50%;left:50%;transform:translate(-50%,-50%);z-index:0;pointer-events:none;animation:sun-spin 20s linear infinite}.about-cta-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:0}.about-cta-link{transition:color .15s,transform .15s}.about-cta-link:hover{color:var(--color-accent-dim)!important;transform:translate(3px)}@keyframes sun-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.about-step-sun-spin{animation:sun-spin 10s linear infinite}@keyframes pin-tap{0%{transform:scale(1)}12%{transform:scale(1.5)}26%{transform:scale(.82)}38%{transform:scale(1)}to{transform:scale(1)}}.about-step-pin-tap{animation:pin-tap 3.5s ease-in-out infinite;transform-origin:bottom center}@keyframes voice-hint-pulse{0%,to{transform:scale(1);box-shadow:0 2px 8px #0000001f,0 0 #5b9ec88c}50%{transform:scale(1.1);box-shadow:0 2px 8px #0000001f,0 0 0 8px #5b9ec800}}.voice-toggle-hint{animation:voice-hint-pulse 1.4s ease-in-out .4s 3}@media (prefers-reduced-motion: reduce){.voice-toggle-hint{animation:none}}@keyframes person-walk{0%{transform:translateY(0) rotate(0)}20%{transform:translateY(-4px) rotate(-7deg)}40%{transform:translateY(0) rotate(0)}60%{transform:translateY(-4px) rotate(7deg)}80%{transform:translateY(0) rotate(0)}to{transform:translateY(0) rotate(0)}}.about-step-walk{animation:person-walk .75s ease-in-out infinite}.about-credits{margin:10px auto 0;max-width:520px;text-align:center;font-size:.68em;line-height:1.6;color:var(--color-subtext);opacity:.8}.about-credits a{color:inherit;white-space:nowrap}@media (min-width: 1024px){.about-inner{max-width:1020px;padding:8px 48px 60px;gap:32px}.about-steps-row{flex-direction:row;align-items:stretch;gap:20px}.about-step-item{flex:1;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:18px 16px;background:#fff;border-radius:20px;position:relative}body.night-mode .about-step-item{background:var(--color-surface)}.about-step-number{display:block;position:absolute;top:11px;left:13px;font-size:.85em;font-weight:900;color:#3d2c00;letter-spacing:.04em}body.night-mode .about-step-number{color:#ffffffbf}.about-steps-card{margin:0;width:auto;padding:0;background:none}.about-step-circle{width:64px;height:64px}.about-step-icon{font-size:1.6em}.about-step-label{flex:none}.about-step-connector-v{display:none}.about-feature-list{flex-direction:row;align-items:center;gap:48px}.about-feature-items{flex:1}.about-feature-cta{flex-shrink:0;width:280px;align-self:stretch}}.route-container{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"panel panel" "map   saved";height:100%}.route-panel{grid-area:panel}.route-map{grid-area:map;min-width:0;min-height:0;position:relative}@media (min-width: 768px){.page-container{padding:24px}.plan-layout{padding:12px 24px}}@media (min-width: 1200px){.page-container{padding:32px 40px}.plan-layout{padding:14px 32px}}@media (min-width: 1024px){.content-inner{max-width:960px}.account-inner{max-width:560px}.spots-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}.spot-card{position:relative;padding:10px!important}.spot-card-row{flex-direction:column;align-items:center;text-align:center;gap:6px}.spot-icon-wrap{width:36px;height:36px}.spot-icon-wrap svg{font-size:14px}.spot-card-text{flex:none;width:100%}.spot-card-text strong{font-size:.82em}.spot-addr{white-space:normal;font-size:.72em!important}.spot-card-actions{position:absolute;top:6px;right:6px;flex-direction:column;gap:2px}.spot-card-actions button{font-size:13px!important}.routes-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}}@media (min-width: 1024px){.plan-layout{padding:0}.route-container{grid-template-columns:540px auto 1fr;grid-template-rows:1fr;grid-template-areas:"panel saved map"}.route-panel{width:540px;overflow-y:auto;padding:14px 16px;border-right:none}.route-map{height:100%;padding:12px}h2{font-size:1.8em}.place-preview-panel{left:auto!important;right:16px!important;transform:none!important;bottom:16px!important;width:300px!important;height:min(560px,calc(100% - 32px))!important}.preferences-card{font-size:1.1em}}.saved-routes-bar{grid-area:saved;width:40px;height:100%;overflow-y:auto;overflow-x:hidden;transition:width .2s;border-left:1.5px solid var(--color-border);margin-right:-16px}.saved-routes-bar.expanded{width:160px}.saved-routes-list{overflow-y:visible}@media (min-width: 768px){.saved-routes-bar{margin-right:-24px}}@media (min-width: 1024px){.saved-routes-bar{border-left:none;border-right:1.5px solid var(--color-border);margin-right:0}.saved-routes-bar.expanded{width:280px}}.pac-container{font-family:Nunito,sans-serif;background:#fffdf5;border:2px solid #ffffff;border-radius:14px;box-shadow:0 4px 16px #0000001f;margin-top:4px;padding:4px 0;overflow:hidden}.pac-container:after{padding:4px 10px 6px;font-size:10px;opacity:.4}.pac-item{padding:8px 14px;border-top:1px solid #fff3c0;cursor:pointer;color:#3d2c00;font-family:Nunito,sans-serif;font-size:13px;line-height:1.35}.pac-item:first-child{border-top:none}.pac-item:hover,.pac-item-selected{background:#fff8dc}.pac-item-query{font-size:13px;font-weight:700;color:#3d2c00;font-family:Nunito,sans-serif;padding-right:4px}.pac-matched{color:#a87500;font-weight:800}.pac-icon{opacity:.45;margin-right:2px}body.shade-mode .pac-container{background:#ebf1f6;box-shadow:0 4px 16px #0000001a}body.shade-mode .pac-item{color:#263748;border-top-color:#d0dde8}body.shade-mode .pac-item:hover,body.shade-mode .pac-item-selected{background:#c4d9e8}body.shade-mode .pac-item-query{color:#263748}body.shade-mode .pac-matched{color:#4a7090}body.night-mode .pac-container{background:#162536;border-color:#ffffff24;box-shadow:0 4px 16px #0000004d}body.night-mode .pac-item{color:#ddeaf5;border-top-color:#ffffff17}body.night-mode .pac-item:hover,body.night-mode .pac-item-selected{background:#1a3a56}body.night-mode .pac-item-query{color:#ddeaf5}body.night-mode .pac-matched{color:#6ab4dc}.location-field-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:#ffd600;border:2px solid #fff;box-shadow:0 0 0 4px #ffd60040;box-sizing:border-box;flex-shrink:0}.address-input--mine{font-weight:600!important;color:#a87500!important}body.shade-mode .address-input--mine{color:#4a7090!important}body.night-mode .address-input--mine{color:#6ab4dc!important}.address-input--mine::placeholder{color:#a87500;opacity:1;font-weight:600}body.shade-mode .address-input--mine::placeholder{color:#4a7090}body.night-mode .address-input--mine::placeholder{color:#6ab4dc}.location-field-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none!important;border:none!important;box-shadow:none!important;cursor:pointer;color:var(--color-subtext);font-size:15px;padding:2px 4px!important;line-height:1;touch-action:manipulation}.location-field-clear:after{content:"";position:absolute;top:-14px;bottom:-14px;left:-12px;right:-6px}.location-field-clear:hover,.location-field-clear:active{transform:translateY(-50%)}.location-field-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;font-family:Nunito,sans-serif;background:#fffdf5;border:2px solid #ffffff;border-radius:14px;box-shadow:0 4px 16px #0000001f;padding:4px 0;overflow:hidden;animation:location-field-in .15s ease-out}@keyframes location-field-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.location-field-row,.location-field-row-main{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:7px 14px!important;background:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;color:#3d2c00;font-size:13px!important;font-weight:600;text-align:left;cursor:pointer}.location-field-row+.location-field-row,.location-field-heading+.location-field-row{border-top:1px solid #fff3c0!important}.location-field-row:hover,.location-field-row-main:hover{background:#fff8dc!important}.location-field-row--recent{padding:0!important;cursor:default}.location-field-row--recent:hover{background:none!important}.location-field-row-main{flex:1;min-width:0}.location-field-row-icon{width:18px;display:flex;justify-content:center;color:#a87500;opacity:.8;flex-shrink:0}.location-field-row-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}.location-field-row-text strong,.location-field-row-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-field-row-text strong{font-weight:700}.location-field-row-text small{font-size:11px;opacity:.65;font-weight:600}.location-field-row-text--mine{font-weight:600;color:#a87500}.location-field-row-delete{flex-shrink:0;width:40px;align-self:stretch;display:flex;align-items:center;justify-content:center;background:none!important;border:none!important;box-shadow:none!important;border-radius:0!important;padding:0!important;color:#3d2c00;opacity:.4;font-size:12px!important;cursor:pointer}.location-field-row-delete:hover{opacity:.9}.location-field-heading{display:flex;justify-content:space-between;align-items:center;padding:8px 14px 4px;border-top:1px solid #fff3c0;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#a87500}.location-field-list>.location-field-heading:first-child{border-top:none}.location-field-heading button{background:none!important;border:none!important;box-shadow:none!important;padding:0!important;font-size:11px!important;font-weight:700;letter-spacing:0;text-transform:none;color:inherit;text-decoration:underline;cursor:pointer}body.shade-mode .location-field-list{background:#ebf1f6;box-shadow:0 4px 16px #0000001a}body.shade-mode .location-field-row,body.shade-mode .location-field-row-main,body.shade-mode .location-field-row-delete{color:#263748}body.shade-mode .location-field-row+.location-field-row,body.shade-mode .location-field-heading+.location-field-row,body.shade-mode .location-field-heading{border-top-color:#d0dde8!important}body.shade-mode .location-field-row:hover,body.shade-mode .location-field-row-main:hover{background:#c4d9e8!important}body.shade-mode .location-field-row-icon,body.shade-mode .location-field-heading,body.shade-mode .location-field-row-text--mine{color:#4a7090}body.night-mode .location-field-list{background:#162536;border-color:#ffffff24;box-shadow:0 4px 16px #0000004d}body.night-mode .location-field-row,body.night-mode .location-field-row-main,body.night-mode .location-field-row-delete{color:#ddeaf5}body.night-mode .location-field-row+.location-field-row,body.night-mode .location-field-heading+.location-field-row,body.night-mode .location-field-heading{border-top-color:#ffffff17!important}body.night-mode .location-field-row:hover,body.night-mode .location-field-row-main:hover{background:#1a3a56!important}body.night-mode .location-field-row-icon,body.night-mode .location-field-heading,body.night-mode .location-field-row-text--mine{color:#6ab4dc}.route-rail{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:13px 0;width:12px;flex-shrink:0}.route-rail-start{width:10px;height:10px;border-radius:50%;border:2.5px solid;box-sizing:border-box;background:transparent}.route-rail-line{flex:1;border-left:2px dotted;margin:3px 0}.route-rail-end{width:10px;height:10px;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.route-swap{align-self:center;flex-shrink:0;width:14px;height:28px;padding:0!important;border-radius:10px!important;background:none!important;border:none!important;box-shadow:none!important;font-size:15px!important;cursor:pointer;transition:transform .2s ease,opacity .15s}.route-swap:hover:not(:disabled){transform:rotate(180deg)}.route-swap:disabled{opacity:.3;cursor:default}@keyframes planning-bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-6px);opacity:1}}.planning-dots{display:flex;align-items:center;gap:5px;padding:6px 2px}.planning-dots .planning-label{font-family:Fredoka,sans-serif;font-weight:700;font-size:.95em;color:var(--color-subtext);animation:planning-bounce 1.1s ease-in-out infinite;animation-delay:.54s}.planning-dots span{font-family:Fredoka,sans-serif;font-weight:700;font-size:.95em;color:var(--color-subtext);display:inline-block;animation:planning-bounce 1.1s ease-in-out infinite}.planning-dots span:nth-child(1){animation-delay:0s}.planning-dots span:nth-child(2){animation-delay:.18s}.planning-dots span:nth-child(3){animation-delay:.36s}
