body,html{background:var(--pw-bg);color:var(--pw-text);font-family:var(--pw-font-sans)}body{background-image:none}a,button,input,select,textarea{letter-spacing:0}:where(button,a):focus-visible{outline:3px solid var(--pw-focus);outline-offset:2px}.app-shell{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;min-height:0;overflow:hidden;background:var(--pw-bg)}.app-frame,.app-frame>.screen{height:100%;min-height:0;overflow:hidden;background:var(--pw-bg)}.app-frame>.screen{width:100%}.screen{color:var(--pw-text)}.screen-fill{height:auto;overflow:hidden}.screen-fill,.screen-scroll{width:100%;max-height:100%;flex:1 1 auto;min-height:0}.screen-scroll{overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:none}.loading-screen-scroll{display:flex;flex-direction:column;padding-bottom:max(var(--pw-space-4),env(safe-area-inset-bottom))}.loading-screen-scroll .magic-stage{flex:0 0 auto;min-height:clamp(240px,42dvh,330px)}.route-preview-actions{padding:var(--pw-space-3) 0 max(var(--pw-space-2),env(safe-area-inset-bottom))}.route-preview-actions .primary-button{min-height:52px}.route-preview-actions .secondary-button{min-height:48px}.screen-actions{flex:0 0 auto;border-top:1px solid color-mix(in srgb,var(--pw-border) 70%,transparent);background:var(--pw-bg);padding-top:var(--pw-space-3)}.opening-location-panel{flex:0 1 auto;min-height:0}.privacy-inline-link{display:inline-flex;min-height:44px;align-items:center;color:var(--pw-action);font-size:.82rem;font-weight:800;text-decoration:underline;text-underline-offset:4px}.route-safety-note{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:var(--pw-space-2);border-top:1px solid var(--pw-border);padding:var(--pw-space-3) 2px;color:var(--pw-text-muted)}.route-safety-note svg{margin-top:2px;color:var(--pw-action)}.route-safety-note p{margin:0;font-size:.75rem;font-weight:600;line-height:1.5}.privacy-page{background:var(--pw-bg);color:var(--pw-text)}.privacy-logo-reverse,html[data-pw-theme=dark] .privacy-logo-primary{display:none}html[data-pw-theme=dark] .privacy-logo-reverse{display:block}.privacy-language-switch{display:inline-grid;grid-template-columns:repeat(2,44px);overflow:hidden;border:1px solid var(--pw-border);border-radius:var(--pw-radius-md);background:var(--pw-surface)}.privacy-language-switch button{width:44px;height:44px;border:0;background:transparent;font-size:1.08rem}.privacy-language-switch button.is-selected{background:var(--pw-action)}.privacy-updated{margin:var(--pw-space-3) 0 0;color:var(--pw-text-muted);font-size:.78rem;font-weight:700}.privacy-copy-section{display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--pw-space-4);border-top:1px solid var(--pw-border);padding:var(--pw-space-5) 0}.privacy-section-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:var(--pw-radius-md);background:var(--pw-surface);color:var(--pw-action)}.privacy-beta-note h2,.privacy-contact h2,.privacy-copy-section h2{margin:0;color:var(--pw-text);font-size:1.05rem;font-weight:780}.privacy-beta-note p,.privacy-contact p,.privacy-copy-section p{margin:var(--pw-space-2) 0 0;color:var(--pw-text-muted);font-size:.92rem;font-weight:520;line-height:1.65}.privacy-beta-note{border-left:3px solid var(--pw-accent);background:color-mix(in srgb,var(--pw-accent) 8%,transparent);padding:var(--pw-space-4)}.privacy-contact{display:grid;gap:var(--pw-space-4);border-top:1px solid var(--pw-border);margin-top:var(--pw-space-6);padding-top:var(--pw-space-5)}.privacy-email{display:inline-flex;min-height:44px;align-items:center;color:var(--pw-action);font-weight:800;text-decoration:underline;text-underline-offset:4px}.privacy-back-link,.privacy-feedback-button{gap:var(--pw-space-2)}.privacy-back-link,.privacy-feedback-button{width:fit-content;padding:0 var(--pw-space-5)}.privacy-back-link{margin-top:var(--pw-space-5)}@media (min-width:640px){.privacy-contact{grid-template-columns:minmax(0,1fr) auto;align-items:end}}.pwa-install-promo{display:grid;grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-height:72px;align-items:center;gap:var(--pw-space-3);border:1px solid var(--pw-border);border-radius:var(--pw-radius-lg);background:var(--pw-surface);color:var(--pw-action);padding:12px;text-align:left;box-shadow:var(--pw-shadow-sm)}.pwa-install-promo-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:var(--pw-radius-md);background:var(--pw-action);color:var(--pw-action-text)}.pwa-install-promo-copy{min-width:0}.pwa-install-promo-copy small,.pwa-install-promo-copy strong{display:block}.pwa-install-promo-copy strong{font-size:.96rem}.pwa-install-promo-copy small{margin-top:2px;color:var(--pw-text-muted);font-size:.76rem;font-weight:600;line-height:1.35}.pwa-install-promo-action{display:inline-flex;align-items:center;gap:2px;color:var(--pw-accent-text-only);font-size:.74rem;font-weight:800;white-space:nowrap}.pwa-install-guide{margin-top:var(--pw-space-3);border:1px solid var(--pw-border);border-radius:var(--pw-radius-lg);background:var(--pw-surface);padding:var(--pw-space-4)}.menu-accordion-content p,.pwa-install-browser-note,.pwa-install-helper,.pwa-install-update-note{margin:0;color:var(--pw-text-muted);font-size:.82rem;font-weight:600;line-height:1.55}.pwa-install-browser-note{margin:0 0 var(--pw-space-3);border-radius:var(--pw-radius-sm);background:var(--pw-surface-tint);padding:var(--pw-space-3)}.pwa-install-platforms{margin-top:var(--pw-space-3)}.pwa-install-platform{padding:var(--pw-space-3) 0;border-top:1px solid var(--pw-border)}.pwa-install-platform-heading{display:flex;align-items:center;gap:var(--pw-space-2)}.pwa-install-platform-heading h3{margin:0;color:var(--pw-text);font-size:.92rem;font-weight:760}.pwa-install-platform-badge{display:inline-flex;min-height:28px;align-items:center;border-radius:10px;background:var(--pw-surface-tint);color:var(--pw-text);padding:4px 8px;font-size:.68rem;font-weight:800}.pwa-install-steps{margin:var(--pw-space-2) 0 0;padding-left:1.35rem;color:var(--pw-text-muted);font-size:.8rem;font-weight:600;line-height:1.5}.pwa-install-steps li+li{margin-top:5px}.pwa-install-update-note{border-left:3px solid var(--pw-accent);padding-left:var(--pw-space-3)}.pwa-install-overlay{position:absolute;inset:0;z-index:60;display:flex;align-items:flex-end;background:color-mix(in srgb,var(--pw-ink) 62%,transparent)}.pwa-install-sheet{display:flex;width:100%;max-height:min(82dvh,720px);min-height:0;flex-direction:column;border:1px solid var(--pw-border);border-bottom:0;border-radius:var(--pw-radius-xl) var(--pw-radius-xl) 0 0;background:var(--pw-surface);padding:var(--pw-space-4) var(--pw-space-4) max(var(--pw-space-6),env(safe-area-inset-bottom));box-shadow:var(--pw-shadow-lg)}.pwa-install-sheet-header{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:var(--pw-space-4)}.pwa-install-sheet-header h2{margin:3px 0 0;color:var(--pw-text);font-size:1.45rem;line-height:1.1}.pwa-install-sheet-kicker{color:var(--pw-accent-text-only);font-size:.72rem;font-weight:800;text-transform:uppercase}.pwa-install-sheet-scroll{min-height:0;margin-top:var(--pw-space-4);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.pwa-install-sheet .pwa-install-guide{margin:0;border:0;border-radius:0;background:transparent;padding:0}.brand-row{position:relative;z-index:30;flex:0 0 auto;min-height:48px}.brand-row-menu{z-index:50}.menu-header-title{min-width:0;margin:0;color:var(--pw-text);font-size:clamp(2rem,9vw,2.7rem);font-weight:900;letter-spacing:0;line-height:.95}.header-actions{display:flex;align-items:center;gap:var(--pw-space-2)}.brand-mark{min-width:44px;min-height:44px;color:var(--pw-forest)}.brand-symbol{width:40px;height:auto;border-radius:0}.brand-symbol-reverse,[data-pw-theme=dark] .brand-symbol-primary{display:none}[data-pw-theme=dark] .brand-symbol-reverse{display:block}.icon-button{width:44px;height:44px;min-height:44px;border-color:var(--pw-border);border-radius:var(--pw-radius-md);background:var(--pw-surface);color:var(--pw-text);box-shadow:none}.install-header-button{position:relative}.install-header-button:after,.update-header-button.is-update-ready:after{position:absolute;top:5px;right:5px;width:8px;height:8px;border:2px solid var(--pw-surface);border-radius:50%;background:var(--pw-accent);content:""}.update-header-button{position:relative}.update-header-button:active svg{transform:rotate(22deg)}@media (prefers-reduced-motion:no-preference){.update-header-button:active svg{transition:transform .14s ease}}@media (max-width:360px){.pwa-install-promo{grid-template-columns:auto minmax(0,1fr)}.pwa-install-promo-action{grid-column:2;justify-self:start}}.eyebrow{margin:var(--pw-space-4) 0 var(--pw-space-3);border:1px solid color-mix(in srgb,var(--pw-accent) 28%,transparent);border-radius:var(--pw-radius-round);background:color-mix(in srgb,var(--pw-accent) 12%,var(--pw-surface));color:var(--pw-accent-text-only);font-size:var(--pw-text-caption);font-weight:700}.eyebrow,.title{letter-spacing:0}.title{color:var(--pw-text);font-family:var(--pw-font-sans);font-size:var(--pw-text-h1);font-weight:760;line-height:1.04}.subtitle{color:var(--pw-text-muted);font-size:var(--pw-text-body);font-weight:500;line-height:1.5}.danger-button,.primary-button,.secondary-button{min-height:54px;border-radius:var(--pw-radius-md);font-weight:720;box-shadow:none}.primary-button{border:1px solid var(--pw-action);background:var(--pw-action);color:var(--pw-action-text)}.primary-button:hover{background:color-mix(in srgb,var(--pw-action) 90%,var(--pw-text))}.primary-button:disabled,.secondary-button:disabled,.spot-action:disabled{cursor:not-allowed;opacity:.5}.secondary-button{border:1px solid var(--pw-border);background:var(--pw-surface);color:var(--pw-action)}.capture-button{min-height:54px;border:1px solid var(--pw-accent);border-radius:var(--pw-radius-md);background:var(--pw-accent);color:var(--pw-accent-text);font-weight:740}.danger-button{border-color:color-mix(in srgb,var(--pw-danger) 36%,transparent);background:color-mix(in srgb,var(--pw-danger) 10%,var(--pw-surface));color:var(--pw-danger)}.magic-stage,.menu-cascade-panel,.panel{border-color:color-mix(in srgb,var(--pw-border) 74%,transparent);border-radius:var(--pw-radius-lg);background:var(--pw-surface);box-shadow:var(--pw-shadow-sm);backdrop-filter:none}.surface-tint{background:var(--pw-surface-tint);color:var(--pw-text-muted)}.select-tile{min-height:54px;border-radius:var(--pw-radius-md);color:var(--pw-text)}.select-tile.selected{transform:none}.language-button.selected,.select-tile.selected-device,.select-tile.selected-style{border-color:var(--pw-accent);background:color-mix(in srgb,var(--pw-accent) 13%,var(--pw-surface));color:var(--pw-text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pw-accent) 24%,transparent)}.language-button.selected:after,.select-tile.selected-device:after,.select-tile.selected-style:after{content:"✓";margin-left:var(--pw-space-2);color:var(--pw-accent-text-only);font-weight:800}.arrival-pill,.location-proof,.nav-status-pill{border:1px solid color-mix(in srgb,var(--pw-success) 28%,transparent);background:color-mix(in srgb,var(--pw-success) 10%,var(--pw-surface));color:var(--pw-success)}.location-proof span:last-child{color:var(--pw-text-muted)}.route-metric{border:1px solid var(--pw-border);border-radius:var(--pw-radius-md);background:var(--pw-surface-tint);color:var(--pw-text)}.route-metric-accent{border-color:color-mix(in srgb,var(--pw-accent) 42%,var(--pw-border));background:color-mix(in srgb,var(--pw-accent) 13%,var(--pw-surface))}.spot-review-card{border:1px solid color-mix(in srgb,var(--pw-border) 82%,transparent)}.spot-review-card.is-confirmed{border-color:color-mix(in srgb,var(--pw-success) 46%,var(--pw-border));box-shadow:inset 4px 0 0 var(--pw-success),var(--pw-shadow-sm)}.spot-status{flex:0 0 auto;border:1px solid color-mix(in srgb,var(--pw-success) 34%,transparent);border-radius:var(--pw-radius-round);background:color-mix(in srgb,var(--pw-success) 10%,var(--pw-surface));color:var(--pw-success);padding:4px 8px;font-size:.68rem;font-weight:800;line-height:1.2}.spot-action{min-height:44px;border:1px solid var(--pw-border);border-radius:var(--pw-radius-md);background:var(--pw-surface);color:var(--pw-action);font-weight:760}.spot-confirm-action{border-color:color-mix(in srgb,var(--pw-success) 34%,var(--pw-border))}.map-card,.maplibre-card{border-color:color-mix(in srgb,var(--pw-border) 82%,transparent);border-radius:var(--pw-radius-lg);background:#e7e2d6;box-shadow:none}.map-card.real-map:before,.map-card:before,.maplibre-card:before{background:none}.maplibre-card .maplibregl-canvas{filter:saturate(.55) sepia(.08) contrast(.94) brightness(1.04)}[data-pw-theme=dark] .maplibre-card .maplibregl-canvas{filter:saturate(.48) sepia(.05) contrast(.9) brightness(.72)}.map-recenter{border-color:color-mix(in srgb,var(--pw-forest) 24%,transparent);background:var(--pw-surface);color:var(--pw-action);box-shadow:var(--pw-shadow-sm);backdrop-filter:none}.map-pin,.spot-pin{border-color:var(--pw-paper);color:var(--pw-ink);box-shadow:0 6px 18px color-mix(in srgb,var(--pw-ink) 22%,transparent)}.map-pin-start,.map-user,.spot-start,.user-position{background:var(--pw-forest);color:var(--pw-paper)}.map-pin-1,.spot-one{background:var(--pw-accent);color:var(--pw-accent-text)}.map-pin-2,.map-pin-3,.spot-three,.spot-two{background:var(--pw-paper);color:var(--pw-forest)}.map-target{width:34px;height:34px;border:5px solid var(--pw-paper);border-radius:var(--pw-radius-sm);background:var(--pw-accent);box-shadow:0 0 0 9px color-mix(in srgb,var(--pw-accent) 18%,transparent)}.map-walk-arrow{border-color:var(--pw-paper);background:var(--pw-forest);box-shadow:0 0 0 9px color-mix(in srgb,var(--pw-forest) 14%,transparent),0 14px 28px color-mix(in srgb,var(--pw-ink) 24%,transparent)}.map-walk-arrow span{border-bottom-color:var(--pw-paper)}.walk-progress-step{min-height:44px;display:grid;place-items:center;border-color:var(--pw-border);background:var(--pw-surface);color:var(--pw-stone)}.walk-progress-step.completed{border-color:color-mix(in srgb,var(--pw-success) 34%,transparent);background:color-mix(in srgb,var(--pw-success) 10%,var(--pw-surface));color:var(--pw-success)}.walk-progress-step.completed:after{content:" ✓"}.walk-progress-step.active{border-color:color-mix(in srgb,var(--pw-accent) 44%,transparent);background:color-mix(in srgb,var(--pw-accent) 13%,var(--pw-surface));color:var(--pw-accent-text-only)}.language-button,.voice-button{min-height:44px;border-color:var(--pw-border);border-radius:var(--pw-radius-md);background:var(--pw-surface);color:var(--pw-action)}.instruction-card,.progress-track,.tip-copy-card{background:var(--pw-surface-tint)}.progress-fill{background:var(--pw-forest)}.tip-tab{min-height:48px;border-color:var(--pw-border);border-radius:var(--pw-radius-md);background:transparent;color:var(--pw-text-muted)}.tip-tab.is-active{border-color:var(--pw-accent);background:color-mix(in srgb,var(--pw-accent) 13%,var(--pw-surface));color:var(--pw-text)}.tip-copy-card{min-height:0;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.notice-path{width:100%;height:auto;margin:var(--pw-space-3) 0}.onboarding-step-number{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border-radius:var(--pw-radius-sm);background:var(--pw-accent);color:var(--pw-accent-text);font-weight:800}.magic-stage{background:var(--pw-field)}.magic-stage:before{border-color:color-mix(in srgb,var(--pw-forest) 24%,transparent)}.magic-core,.magic-emoji{border-color:var(--pw-border);background:var(--pw-surface);color:var(--pw-text);box-shadow:var(--pw-shadow-sm)}.magic-progress{background:var(--pw-surface-tint)}.menu-cascade{overflow-x:hidden;overscroll-behavior-y:contain;touch-action:pan-y;background:color-mix(in srgb,var(--pw-ink) 18%,transparent)}.menu-cascade,.menu-cascade-panel{overflow-y:auto;-webkit-overflow-scrolling:touch}.menu-cascade-panel{max-height:calc(100dvh - 120px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background:var(--pw-surface);box-shadow:var(--pw-shadow-lg)}.menu-link-button{min-height:54px;color:var(--pw-text)}.menu-accordion{overflow:hidden}.menu-accordion-trigger{display:flex;width:100%;min-height:54px;align-items:center;justify-content:space-between;gap:var(--pw-space-3);background:transparent;color:var(--pw-text);padding:var(--pw-space-4);text-align:left;font-weight:800}.menu-accordion-content{border-top:1px solid var(--pw-border);padding:0 var(--pw-space-4) var(--pw-space-4)}.menu-accordion-content>.pwa-install-guide,.menu-accordion-content>p{margin-top:var(--pw-space-3)}.pwa-install-guide-compact{border:0;border-radius:0;background:transparent;padding:0}.error-mark{background:color-mix(in srgb,var(--pw-danger) 12%,var(--pw-surface));color:var(--pw-danger)}.confirm-overlay{background:color-mix(in srgb,var(--pw-ink) 72%,transparent);backdrop-filter:none}.editorial-intro{font-family:var(--pw-font-editorial)}.phone-frame{border-color:color-mix(in srgb,var(--pw-border) 84%,transparent);background:var(--pw-surface);box-shadow:var(--pw-shadow-lg)}@media (min-width:760px){.app-shell{background:var(--pw-field)}.app-frame{height:min(880px,calc(100dvh - 36px));background:var(--pw-bg);box-shadow:var(--pw-shadow-lg)}}@media (max-height:600px){.opening-location-panel{max-height:38dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}