@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:#1f6b47;--brand-strong:#17553a;--brand-tint:#e3f1e8;--accent:#e4462b;--accent-hover:color-mix(in srgb, var(--accent) 88%, white);--accent-tint:#fde8e3;--on-accent:#fff;--ink:#17221c;--text-primary:#17221c;--text-secondary:#4f5b54;--text-placeholder:#97a099;--text-on-dark:#fbfbf8;--bg-canvas:#f7f5ef;--bg-surface:#fff;--bg-muted:#efeee7;--bg-accent:#f3f2eb;--border:#e8e6de;--border-input:#dcdad1;--border-soft:#f1efe8;--border-strong:#c9c7be;--focus-ring:#1f6b4773;--action-primary:var(--accent);--action-primary-hover:var(--accent-hover);--action-ink:var(--ink);--action-ink-hover:color-mix(in srgb, var(--ink) 86%, white);--on-ink:#fbfbf8;--success:#1d6b43;--success-bg:#e5f3ea;--success-border:#c4e3cf;--warning:#87581a;--warning-bg:#fcf0d9;--warning-border:#f3dcae;--error:#a3332a;--error-bg:#fbe7e4;--error-border:#f3c9c2;--info:#22598a;--info-bg:#e5eef7;--info-border:#c6d9ec;--neutral:#4f5b54;--neutral-bg:#efeee7;--neutral-border:#e1dfd6;--ai:#6b46c1;--ai-bg:#f1ecfc;--ai-border:#ddd1f6;--mark:#2f6f8f;--mark-fill:#2f6f8f24;--route:var(--accent);--route-casing:#fff;--route-ghost:#6f7a73;--map-ink:#17221c;--map-ink-secondary:#4f5b54;--map-surface:#fff;--photo-veil:#0c120e8c;--on-photo:#fff;--font-sans:"Figtree Variable", "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-label:12px;--leading-label:1.2;--text-compact:13px;--leading-compact:1.35;--text-body:15px;--leading-body:1.45;--text-h3:17px;--leading-h3:1.3;--text-h2:19px;--leading-h2:1.25;--text-h1:23px;--leading-h1:1.2;--text-display:30px;--tracking-label:.05em;--tracking-h2:-.01em;--tracking-h1:-.02em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--elevation-flat:0 0 #0000;--elevation-raised:0 4px 16px #141e181a;--elevation-overlay:0 10px 36px #141e1829;--dur-fast:.15s;--dur-fold:.2s;--dur-panel:.25s;--ease-out:ease-out;--ease-out-strong:cubic-bezier(.23, 1, .32, 1);--ease-glide:cubic-bezier(.2, .6, .2, 1);--press-scale:.96;--glass-bg:linear-gradient(152deg, #ffffffdb 0%, #ffffffb8 48%, #ffffffd1 100%);--glass-border:#fffc;--glass-highlight:#fffffff2;--glass-shadow:0 10px 40px #111a1529;--glass-blur:20px;--glass-saturate:1.6;--control-height:44px;--control-height-sm:36px;--panel-width:420px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:#4fb383;--brand-strong:#6cc79a;--brand-tint:#17352a;--accent:#f05a3e;--accent-tint:#3a1d17;--ink:#e9efeb;--text-primary:#e9efeb;--text-secondary:#a5b2ab;--text-placeholder:#748079;--text-on-dark:#fbfbf8;--bg-canvas:#0f1512;--bg-surface:#161e1a;--bg-muted:#1f2823;--bg-accent:#222c27;--border:#2a3530;--border-input:#34403a;--border-soft:#222c27;--border-strong:#46534c;--focus-ring:#4fb38380;--action-ink:#e9efeb;--action-ink-hover:#c8ceca;--on-ink:#0f1512;--success:#7fd3a5;--success-bg:#173226;--success-border:#24493a;--warning:#f0c27a;--warning-bg:#352a17;--warning-border:#4e3d20;--error:#ff9a8c;--error-bg:#3a1f1c;--error-border:#57302b;--info:#8fc1ea;--info-bg:#182a3a;--info-border:#24405a;--neutral:#a5b2ab;--neutral-bg:#1f2823;--neutral-border:#2e3a34;--ai:#b9a2f2;--ai-bg:#251d3d;--ai-border:#3a2f5c;--mark:#7ab8d6;--mark-fill:#7ab8d629;--route-ghost:#9aa59f;--elevation-raised:0 4px 16px #00000059;--elevation-overlay:0 10px 36px #00000080;--glass-bg:linear-gradient(152deg, #161e1ae6 0%, #161e1ac7 48%, #161e1adb 100%);--glass-border:#ffffff14;--glass-highlight:#ffffff1a;--glass-shadow:0 10px 40px #00000080}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-body);color:var(--text-primary);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--text-primary);text-underline-offset:3px}:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.icon{flex:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.eyebrow,.card-title,.stat-label,.label.examples-label{font-size:var(--text-label);line-height:var(--leading-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);font-weight:650}.lead{color:var(--text-secondary);font-size:var(--text-body)}.help{font-size:var(--text-compact);line-height:var(--leading-compact);color:var(--text-secondary)}.help.center{text-align:center}.help.is-error{color:var(--error)}.credit{margin-top:var(--space-1);color:var(--text-secondary);font-size:11px}.credit a{color:inherit}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-body);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;font-weight:600;line-height:1.1;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){scale:var(--press-scale)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--action-primary);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--action-primary-hover)}.btn-ink{background:var(--action-ink);color:var(--on-ink)}.btn-ink:hover:not(:disabled){background:var(--action-ink-hover)}.btn-secondary{background:var(--bg-surface);border-color:var(--border-input)}.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){background:var(--bg-accent)}.btn-glass{min-height:var(--control-height-sm);padding:0 var(--space-3);border-color:var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-bg);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));font-size:var(--text-compact)}.btn-sm{min-height:var(--control-height-sm);padding:0 var(--space-3);font-size:var(--text-compact);gap:6px}.btn-lg{min-height:50px;font-size:16px}.btn-block{width:100%}.btn-icon{width:var(--control-height);padding:0}.btn-icon.btn-sm{width:var(--control-height-sm)}.btn-icon.btn-lg{width:50px}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.busy{align-items:center;gap:var(--space-2);display:inline-flex}.chip{min-height:var(--control-height-sm);padding:6px var(--space-3);border:1px solid var(--border-input);border-radius:var(--radius-pill);background:var(--bg-surface);font-size:var(--text-compact);text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out);font-weight:500}.chip:hover:not(:disabled){background:var(--bg-accent);border-color:var(--border-strong)}.chip:active:not(:disabled){scale:var(--press-scale)}.pill{border:1px solid var(--neutral-border);border-radius:var(--radius-pill);background:var(--neutral-bg);height:22px;color:var(--neutral);white-space:nowrap;vertical-align:1px;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.pill-ai{margin-left:var(--space-2);color:var(--ai);background:var(--ai-bg);border-color:var(--ai-border)}.callout{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--neutral-border);border-radius:var(--radius-md);background:var(--neutral-bg);font-size:var(--text-compact);line-height:var(--leading-compact);display:flex}.callout .icon{margin-top:1px}.callout-text{gap:var(--space-2);justify-items:start;display:grid}.callout-info{color:var(--info);background:var(--info-bg);border-color:var(--info-border)}.callout-error{color:var(--error);background:var(--error-bg);border-color:var(--error-border)}.callout-success{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.callout .btn{color:var(--text-primary)}.label{margin-bottom:var(--space-1);font-size:var(--text-compact);color:var(--text-secondary);font-weight:600;display:block}.label .optional{font-weight:400}.input,.textarea{width:100%;min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--bg-surface);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);font-size:16px}.textarea{min-height:92px;padding:var(--space-3);resize:vertical;line-height:var(--leading-body)}.input::placeholder,.textarea::placeholder{color:var(--text-placeholder)}.input:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.checkbox{align-items:center;gap:var(--space-2);font-size:var(--text-compact);cursor:pointer;display:flex}.checkbox input{width:18px;height:18px;accent-color:var(--brand);margin:0}.switch-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--control-height);cursor:pointer;font-weight:600;display:flex}.switch-row>span:first-child{align-items:center;gap:var(--space-2);display:inline-flex}.switch{flex:none;width:44px;height:26px;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch span{border-radius:var(--radius-pill);background:var(--border-strong);transition:background-color var(--dur-fast) var(--ease-out);pointer-events:none;position:absolute;inset:0}.switch span:after{content:"";background:var(--on-accent);width:20px;height:20px;transition:translate var(--dur-fast) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:after{translate:18px}.switch input:focus-visible+span{box-shadow:0 0 0 3px var(--focus-ring)}.card{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface)}.card-title{margin-bottom:var(--space-3)}.app{position:fixed;inset:0;overflow:hidden}.map{z-index:0;background:var(--bg-canvas);position:absolute;inset:0}.map-canvas{width:100%;height:100%}.glass,.panel{border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.glass,.panel,.btn-glass{background:var(--bg-surface);-webkit-backdrop-filter:none;backdrop-filter:none}}.topbar{top:calc(env(safe-area-inset-top) + var(--space-3));left:var(--space-3);z-index:5;gap:var(--space-2);display:flex;position:absolute}.panel{z-index:4;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:62dvh;transition:max-height var(--dur-panel) var(--ease-out-strong);border-bottom:0;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.panel.ask{max-height:78dvh}.panel.is-full{max-height:calc(100dvh - 76px)}.panel.is-dragging{transition:none}.panel-scroll{overscroll-behavior:contain;min-height:0;padding:var(--space-4) var(--space-4) var(--space-3);flex:auto;overflow:hidden auto}.panel-brand{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.sheet-handle{cursor:grab;touch-action:none;background:0 0;border:0;flex:none;justify-content:center;width:100%;padding:10px 0 4px;display:flex}.sheet-handle span{border-radius:var(--radius-pill);background:var(--border-strong);width:40px;height:5px}.sheet-handle+.progress+.panel-scroll,.sheet-handle+.panel-scroll{padding-top:var(--space-2)}.sheet-actions{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--border-soft);flex-wrap:wrap;flex:none;display:flex}.sheet-actions .btn-block{flex:1}.sheet-actions .help{width:100%}.sheet-body{gap:var(--space-3);margin-top:var(--space-3);display:grid}.panel.is-peek{max-height:168px}.panel.is-peek .panel-brand,.panel.is-peek .route-summary,.panel.is-peek .elevation,.panel.is-peek .sheet-body,.panel.is-peek .sheet-actions{display:none}.app.wide .topbar{left:auto;right:var(--space-4);top:var(--space-4)}.app.wide .panel{top:var(--space-4);left:var(--space-4);right:auto;bottom:var(--space-4);width:var(--panel-width);border-bottom:1px solid var(--glass-border);border-radius:var(--radius-xl);max-height:none}.app.wide .panel.ask{max-height:calc(100vh - 2 * var(--space-4));bottom:auto}.app.wide .topbar .btn-glass{min-height:var(--control-height-sm)}.progress{top:0;left:var(--radius-xl);right:var(--radius-xl);border-radius:var(--radius-pill);height:3px;position:absolute;overflow:hidden}.progress span{background:var(--brand);border-radius:var(--radius-pill);width:35%;animation:sweep 1.2s var(--ease-glide) infinite;position:absolute;inset:0}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(300%)}}.brand{align-items:baseline;gap:var(--space-3);display:inline-flex}.brand-logo{width:auto;height:19px;display:block;overflow:visible}.brand-letters{fill:var(--text-primary)}.brand-loop{fill:var(--brand)}.brand-dot{fill:var(--accent)}.ask-title{letter-spacing:var(--tracking-h1);font-size:28px;font-weight:700;line-height:1.15}.ask .lead{margin:var(--space-2) 0 var(--space-5)}.ask-form .help{margin-top:var(--space-2)}.examples-label{margin:var(--space-5) 0 var(--space-2)}.examples{gap:var(--space-2);flex-wrap:wrap;display:flex}.ask-form .callout{margin-top:var(--space-4)}.route-title{margin-top:var(--space-1);font-size:var(--text-h1);line-height:var(--leading-h1);letter-spacing:var(--tracking-h1);overflow-wrap:anywhere;font-weight:700}.route-summary{margin-top:var(--space-1);font-size:var(--text-compact);color:var(--text-secondary)}.stats-card{margin-top:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-2)}.stats{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}@media (width<=359px){.stats{row-gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{min-width:0}.stat-label{font-size:11px}.stat-value{letter-spacing:var(--tracking-h1);font-variant-numeric:tabular-nums;white-space:nowrap;margin:2px 0 0;font-size:clamp(19px,5.4vw,24px);font-weight:700;line-height:1.1}.stat-unit{font-size:var(--text-compact);letter-spacing:0;color:var(--text-secondary);margin-left:2px;font-weight:600}.elevation{margin:var(--space-3) 0 0}.elevation svg{width:100%;height:52px;display:block}.elevation-area{fill:var(--mark-fill)}.elevation-line{fill:none;stroke:var(--mark);stroke-width:2px}.elevation figcaption{color:var(--text-secondary);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:2px;font-size:11px;display:flex}.choices{gap:var(--space-2);display:grid}.choice{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-3) var(--space-4);border:1.5px solid var(--ink);border-radius:var(--radius-md);background:var(--bg-surface);text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out);display:flex}.choice:hover:not(:disabled){background:var(--bg-accent)}.choice:active:not(:disabled){scale:var(--press-scale)}.choice span{color:var(--text-secondary);font-size:var(--text-compact);flex:none}.itinerary{margin:0;padding:0;list-style:none}.itinerary>li{gap:var(--space-3);padding-bottom:var(--space-3);display:flex;position:relative}.itinerary>li:last-child{padding-bottom:0}.itinerary>li:not(:last-child):before{content:"";background:var(--border);width:2px;position:absolute;top:24px;bottom:0;left:11px}.it-dot{background:var(--ink);width:24px;height:24px;color:var(--on-ink);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex;position:relative}.it-dot.is-start{background:var(--bg-surface);border:6px solid var(--brand)}.it-dot.is-cafe,.it-dot.is-finish{background:var(--bg-surface);border:2px solid var(--ink);color:var(--text-primary)}.it-body{flex:1;min-width:0}.it-row{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:24px;margin-top:-6px;margin-bottom:-6px;display:flex}.it-label{overflow-wrap:anywhere;min-width:0;font-weight:600;line-height:24px}.departure{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-soft);gap:6px;display:flex}.departure .icon{margin-top:1px}.cafe{gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-canvas);justify-items:start;display:grid}.cafe-photo{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--bg-muted);justify-self:stretch;margin:0;position:relative;overflow:hidden}.cafe-photo img{object-fit:cover;width:100%;height:100%;display:block}.cafe-photo figcaption{border-top-left-radius:var(--radius-sm);background:var(--photo-veil);white-space:nowrap;text-overflow:ellipsis;max-width:100%;padding:1px 6px;font-size:10px;line-height:1.5;position:absolute;bottom:0;right:0;overflow:hidden}.cafe-photo figcaption:empty{display:none}.cafe-photo figcaption a{color:var(--on-photo);text-decoration:none}.cafe-info{font-size:var(--text-compact);line-height:var(--leading-compact);color:var(--text-secondary)}.cafe-info.is-open:before,.cafe-info.is-closed:before{content:"";background:var(--success);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.cafe-info.is-closed:before{background:var(--error)}.cafe-options{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.cafe-option{width:100%;min-height:48px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);text-align:left;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);gap:2px;display:grid}.cafe-option:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-accent)}.cafe-option strong{overflow-wrap:anywhere}.section-head{justify-content:space-between;align-items:baseline;display:flex}.section-head .card-title{margin-bottom:var(--space-2)}.gallery{gap:var(--space-2);display:grid}.spot-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.spot-grid>li:first-child:nth-last-child(odd){grid-column:1/-1}.spot-grid>li:first-child:nth-last-child(odd) .spot-photo{aspect-ratio:2}.spot-card{width:100%;height:100%;padding:0 0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);text-align:left;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out);align-content:start;gap:2px;display:grid;overflow:hidden}.spot-card:hover{border-color:var(--border-strong)}.spot-card:active{scale:var(--press-scale)}.spot-photo{aspect-ratio:3/2;margin-bottom:var(--space-1);background:var(--bg-muted);display:block;position:relative;overflow:hidden}.spot-photo img{object-fit:cover;width:100%;height:100%;display:block}.spot-credit{border-top-left-radius:var(--radius-sm);background:var(--photo-veil);max-width:100%;color:var(--on-photo);white-space:nowrap;text-overflow:ellipsis;padding:1px 6px;font-size:10px;line-height:1.5;position:absolute;bottom:0;right:0;overflow:hidden}.spot-meta{padding:0 var(--space-3);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.spot-name{padding:0 var(--space-3);font-size:var(--text-compact);line-height:var(--leading-compact);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.adjust-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.adjust-btn{min-height:64px;padding:var(--space-2) var(--space-1);border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--bg-surface);font-size:var(--text-compact);text-align:center;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-weight:600;line-height:1.15;display:flex}.adjust-btn:hover:not(:disabled){background:var(--bg-accent);border-color:var(--border-strong)}.adjust-btn:active:not(:disabled){scale:var(--press-scale)}.adjust-btn:disabled{opacity:.55;cursor:default}.adjust-btn.is-active{border-color:var(--ink);background:var(--bg-accent)}.adjust-btn .spinner{width:20px;height:20px}.fold{transition:grid-template-rows var(--dur-fold) var(--ease-out);grid-template-rows:0fr;display:grid}.fold.is-open{grid-template-rows:1fr}.fold>div{min-height:0;overflow:hidden}.tune{gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-canvas);display:grid}.stepper{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.stepper-label{font-weight:600}.stepper-control{align-items:center;gap:var(--space-2);display:flex}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:76px;font-weight:700}.stepper .btn{font-size:20px}.change{margin-top:var(--space-4)}.change-row{gap:var(--space-2);display:flex}.change-row .input{flex:1;min-width:0}.change-row .btn{flex:none}.tip{gap:var(--space-2);margin-top:var(--space-3);display:flex}.start-marker,.end-marker,.stop-marker{z-index:2}.start-marker{border:6px solid var(--brand);background:var(--map-surface);cursor:grab;border-radius:50%;width:22px;height:22px;box-shadow:0 1px 4px #0000004d}.end-marker,.stop-marker{border:2px solid var(--map-surface);background:var(--map-ink);width:28px;height:28px;color:var(--map-surface);cursor:grab;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;box-shadow:0 1px 4px #0000004d}.stop-marker.break,.end-marker{background:var(--map-surface);border:2px solid var(--map-ink);color:var(--map-ink)}.held-dot{border:3px solid var(--map-surface);background:var(--route);pointer-events:none;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 10px #00000059}.held-dot.hidden{display:none}.drag-badge,.map-hint{border-radius:var(--radius-pill);font-size:var(--text-compact);white-space:nowrap;pointer-events:none;padding:4px 10px;font-weight:600}.drag-badge{border-radius:var(--radius-md);text-align:center;font-variant-numeric:tabular-nums;gap:1px;padding:5px 10px;line-height:1.25;display:grid}.drag-badge .badge-line+.badge-line{color:var(--text-secondary);font-size:12px;font-weight:500}.drag-badge .delta{color:var(--text-secondary);margin-left:6px}.drag-badge.busy{opacity:.7}.map-hint{font-weight:500}.sight-marker{z-index:1;cursor:pointer;align-items:center;gap:4px;display:flex}.sight-marker svg{box-sizing:content-box;border:1.5px solid var(--map-ink);background:var(--map-surface);color:var(--map-ink);opacity:.9;transition:opacity var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out);border-radius:50%;flex:none;padding:4px;box-shadow:0 1px 3px #00000038}.sight-marker:hover svg{opacity:1;scale:1.12}.sight-marker-name{border-radius:var(--radius-pill);background:var(--map-surface);max-width:160px;color:var(--map-ink);font:600 11px/1.4 var(--font-sans);white-space:nowrap;text-overflow:ellipsis;opacity:.92;padding:1px 6px;display:none;overflow:hidden;box-shadow:0 1px 2px #00000026}.show-sight-names .sight-marker-name:not(:empty){display:block}.sight-popup{font-family:var(--font-sans);color:var(--map-ink);gap:2px;display:grid}.sight-popup img{width:100%;height:110px;margin-bottom:var(--space-1);border-radius:var(--radius-sm);object-fit:cover}.sight-popup span{color:var(--map-ink-secondary);font-size:12px}.sight-popup a{color:var(--map-ink);font-size:13px;font-weight:600}.sight-popup .sight-popup-credit{color:var(--map-ink-secondary);font-size:11px;font-weight:500;text-decoration:none}.maplibregl-popup-content{border-radius:var(--radius-md);box-shadow:var(--elevation-overlay);padding:10px 12px}.scrim{z-index:10;animation:fade-in var(--dur-fast) var(--ease-out);background:#0f161273;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.dialog{border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg-surface);width:min(520px,100vw);max-height:92vh;box-shadow:var(--elevation-overlay);position:relative;overflow-y:auto}@media (width>=600px){.scrim{align-items:center}.dialog{border-radius:var(--radius-lg)}}.dialog-close{top:var(--space-2);right:var(--space-2);position:absolute}.dialog-body{gap:var(--space-3);padding:var(--space-5) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom));display:grid}.dialog-body h2{padding-right:var(--space-10);font-size:var(--text-h2);line-height:var(--leading-h2);letter-spacing:var(--tracking-h2);font-weight:700}.dialog-body .label{margin-bottom:calc(-1 * var(--space-2))}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.dialog-links{justify-content:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.faces{justify-content:space-between;gap:var(--space-2);display:flex}.face{border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--bg-surface);cursor:pointer;filter:grayscale(.6);height:52px;transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out), filter var(--dur-fast) var(--ease-out);flex:1;font-size:26px}.face:hover{filter:none}.face.is-active{border-color:var(--ink);background:var(--bg-accent);filter:none;scale:1.04}.thanks{text-align:center;justify-items:center}.thanks-icon{background:var(--success-bg);width:56px;height:56px;color:var(--success);border-radius:50%;justify-content:center;align-items:center;display:flex}.device-grid{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.device-option{border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--bg-surface);cursor:pointer;min-height:56px;transition:background-color var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out);font-weight:600}.device-option:hover{background:var(--bg-accent)}.device-option:active{scale:var(--press-scale)}.steps{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.steps li{align-items:flex-start;gap:var(--space-3);display:flex}.step-number{background:var(--ink);width:24px;height:24px;color:var(--on-ink);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}@media (prefers-reduced-motion:reduce){.btn:active:not(:disabled),.chip:active:not(:disabled),.choice:active:not(:disabled),.adjust-btn:active:not(:disabled),.spot-card:active,.sight-marker:hover svg,.device-option:active,.face.is-active{scale:1}.panel,.fold,.switch span:after{transition:none}.spinner,.progress span{animation-duration:2.4s}}
