@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Montserrat:wght@700;800&display=swap";
:root{--color-ink:#18201f;--color-ink-label:#394341;--color-ink-muted:#67716f;--color-ink-soft:#18201fb8;--color-ink-faint:#18201f52;--color-ink-inverse:#fff;--color-route-teal:#007c72;--color-route-teal-strong:#005b54;--color-route-teal-soft:#d9f3ee;--color-route-teal-wash:#007c7224;--color-route-teal-border:#007c722e;--color-route-teal-border-strong:#007c7261;--color-route-teal-focus:#007c7229;--color-start-rust:#b4532a;--color-start-rust-strong:#8f3f21;--color-start-rust-soft:#fff0dc;--color-start-rust-wash:#b4532a24;--color-start-rust-border:#8e471f42;--color-library-rust:#9d6047;--color-library-rust-strong:#693d2e;--color-library-rust-bg:#9d60471f;--color-library-slate:#344654;--color-library-slate-strong:#20303c;--color-library-slate-bg:#3446541f;--color-poi-coffee:#9a4f1f;--color-poi-treat:#c2417d;--color-poi-park:#168457;--color-poi-food:#c05621;--color-poi-grocery:#3f7b32;--color-poi-landmark:#6d4bc8;--color-poi-bathroom:#226d86;--material-page:#f1ebdf;--material-map-fallback:#d8ddd7;--material-panel:#fffffff5;--material-panel-solid:#fff;--material-panel-raised:#fffffffb;--material-panel-inset:#ffffffe6;--material-panel-hover:#fffffffa;--material-border:#6d4d2742;--material-border-soft:#6d4d272e;--material-shadow:0 10px 26px #121f1d21, 0 2px 6px #121f1d14;--material-shadow-low:0 6px 16px #121f1d1a, 0 1px 3px #121f1d12;--material-field-shadow:inset 0 1px 0 #ffffff9e;--material-paper-grain:linear-gradient(180deg, #ffffffd1, #f8f5ee2e);--material-field-grain:linear-gradient(180deg, #ffffffbd, #f8f5ee1f);--semantic-warn:#9a5a00;--semantic-warn-bg:#fff4d8;--semantic-danger:#b42318;--semantic-danger-bg:#fff1ef;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-ui:"Avenir Next", Avenir, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-brand:Montserrat, var(--font-ui);--font-numeric:Inter, "Avenir Next", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--weight-quiet:500;--weight-label:600;--weight-control:600;--weight-strong:700;--weight-display:800;--weight-primary:800;--weight-number:800;--bg:var(--material-page);--panel:var(--material-panel);--panel-solid:var(--material-panel-solid);--text:var(--color-ink);--muted:var(--color-ink-muted);--border:var(--material-border);--shadow:var(--material-shadow);--accent:var(--color-route-teal);--accent-strong:var(--color-route-teal-strong);--accent-soft:var(--color-route-teal-soft);--warn:var(--semantic-warn);--warn-bg:var(--semantic-warn-bg);--danger:var(--semantic-danger);--danger-bg:var(--semantic-danger-bg)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body)}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent;font-family:var(--font-ui)}.app-shell{background:var(--material-map-fallback);isolation:isolate;position:fixed;inset:0;overflow:hidden}.map-surface,.draw-canvas{position:absolute;inset:0}.map-surface{z-index:0}.draw-canvas{z-index:4;cursor:crosshair;pointer-events:none;touch-action:auto}.app-shell.is-drawing-session,.app-shell.is-drawing-session .map-surface{touch-action:none}.generate-start-crosshair{z-index:6;pointer-events:none;opacity:.92;background:radial-gradient(circle,#b4532a1c 0 5px,#b4532a0b 6px 20px,#0000 40px);border-radius:999px;width:88px;height:88px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.generate-start-crosshair.is-loading{animation:1.5s ease-in-out infinite generate-start-glow}.generate-start-crosshair:before,.generate-start-crosshair:after{content:"";background:var(--color-start-rust);box-shadow:0 0 0 2px var(--color-ink-inverse), 0 2px 8px #18201f3d;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.generate-start-crosshair:before{width:36px;height:3px}.generate-start-crosshair:after{width:3px;height:36px}.generate-loading-indicator{z-index:14;pointer-events:none;align-content:center;place-items:center;gap:7px;width:140px;min-height:116px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.generate-loading-indicator img{filter:drop-shadow(0 4px 12px #18201f3d);width:91px;height:auto;display:block}.generate-loading-label{border:1px solid var(--color-start-rust-border);background:var(--material-paper-grain), #fff8ebf0;box-shadow:var(--material-shadow-low);color:var(--color-start-rust-strong);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-strong);opacity:0;border-radius:999px;padding:6px 9px;line-height:1;animation:.18s 1.6s forwards reveal-generate-loading-label;transform:translateY(-2px)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.loading-screen,.config-screen{z-index:20;background:var(--bg);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.config-message{border:1px solid var(--border);background:var(--material-paper-grain), var(--panel-solid);width:min(460px,100%);box-shadow:var(--shadow);border-radius:8px;padding:18px}.config-message h1{margin:0 0 8px;font-size:20px;line-height:1.2}.config-message p{color:var(--muted);margin:0;line-height:1.45}.auth-modal-backdrop{z-index:34;padding:max(18px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));pointer-events:auto;background:#18201f33;place-items:center;display:grid;position:absolute;inset:0}.auth-modal{border:1px solid var(--border);background:var(--material-paper-grain), var(--material-panel-raised);width:min(430px,100%);box-shadow:0 24px 72px #121f1d3d, var(--material-shadow);border-radius:10px;padding:16px;animation:.18s cubic-bezier(.2,0,0,1) both panel-enter}.auth-modal.is-hard-prompt{border-color:var(--color-start-rust-border)}.auth-modal-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px;display:flex}.auth-kicker{color:var(--color-route-teal-strong);font-family:var(--font-ui);font-size:11px;font-weight:var(--weight-label);letter-spacing:0;text-transform:uppercase;margin-bottom:6px;line-height:1;display:block}.auth-modal h2{color:var(--text);font-family:var(--font-ui);font-size:21px;line-height:1.1;font-weight:var(--weight-display);margin:0}.auth-close-button,.auth-secondary-button{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);color:var(--color-ink-label);cursor:pointer;font-size:12px;font-weight:var(--weight-control);border-radius:7px;min-height:34px;padding:0 10px}.auth-close-button:hover,.auth-secondary-button:hover{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.auth-body,.auth-signed-in-panel p{color:var(--color-ink-soft);margin:0 0 12px;font-size:14px;line-height:1.45}.auth-quota-strip{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);box-shadow:var(--material-field-shadow);border-radius:8px;gap:3px;margin-bottom:12px;padding:10px;display:grid}.auth-quota-strip span:first-child{color:var(--text);font-family:var(--font-ui);font-size:13px;font-weight:var(--weight-label)}.auth-quota-strip span:last-child{color:var(--color-ink-muted);font-size:12px;font-weight:var(--weight-quiet)}.auth-provider-button{border:1px solid var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);width:100%;min-height:44px;color:var(--color-ink-inverse);cursor:pointer;font-family:var(--font-ui);font-size:14px;font-weight:var(--weight-primary);border-radius:8px;justify-content:center;align-items:center;gap:9px;display:inline-flex}.auth-provider-button:hover{background:var(--color-route-teal)}.auth-provider-button:disabled{cursor:not-allowed;opacity:.64}.auth-google-mark{color:#1a73e8;background:#fff;border-radius:999px;place-items:center;width:22px;height:22px;font-family:Arial,sans-serif;font-size:14px;font-weight:800;display:grid}.auth-email-form{gap:7px;margin-top:12px;display:grid}.auth-email-form label{color:var(--color-ink-label);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-quiet)}.auth-email-form div{grid-template-columns:minmax(0,1fr) auto;gap:7px;display:grid}.auth-email-form input{border:1px solid var(--material-border-soft);min-width:0;min-height:42px;color:var(--text);background:#ffffffeb;border-radius:8px;padding:0 11px}.auth-email-form button{border:1px solid var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);min-height:42px;color:var(--color-ink-inverse);cursor:pointer;font-size:13px;font-weight:var(--weight-control);border-radius:8px;padding:0 12px}.auth-email-form input:disabled,.auth-email-form button:disabled{cursor:not-allowed;opacity:.62}.auth-message,.auth-setup-note{border:1px solid var(--material-border-soft);background:var(--material-field-grain), #fff8ebd1;color:var(--color-start-rust-strong);border-radius:8px;margin:12px 0 0;padding:9px 10px;font-size:13px;line-height:1.35}.auth-secondary-button{width:100%;margin-top:12px}.top-toolbar{z-index:20;top:max(14px, env(safe-area-inset-top));left:max(14px, env(safe-area-inset-left));right:max(14px, env(safe-area-inset-right));pointer-events:none;justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute}.brand-chip,.route-lab-chip,.mode-toggle,.top-locate-button,.account-chip,.tool-group,.time-toggle{pointer-events:auto;border:1px solid var(--border);background:var(--material-paper-grain), var(--panel);box-shadow:var(--material-shadow-low);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:8px}.brand-chip{min-height:44px;font-family:var(--font-brand);font-size:18px;font-weight:var(--weight-display);letter-spacing:0;align-items:center;gap:9px;padding:0 13px;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:7px;place-items:center;width:25px;height:25px;display:grid}.route-lab-chip{border:1px solid var(--color-route-teal-border);min-height:40px;color:var(--accent-strong);cursor:pointer;font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-control);background:#fffffff5;padding:0 10px}.route-lab-chip:hover{background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.route-lab-chip:disabled{cursor:not-allowed;opacity:.6}.top-locate-button{border-color:var(--color-route-teal-border);min-height:44px;color:var(--accent-strong);cursor:pointer;font-family:var(--font-ui);font-size:13px;font-weight:var(--weight-control);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:0 12px;display:inline-flex}.top-locate-button:hover{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.top-locate-button:disabled{cursor:not-allowed;opacity:.55}@media (min-width:641px) and (min-height:481px){.top-locate-button.is-generate-mode{display:none}}.account-chip{border-color:var(--material-border-soft);width:44px;min-width:44px;min-height:44px;color:var(--color-ink-label);cursor:pointer;font-family:var(--font-ui);font-size:13px;font-weight:var(--weight-control);white-space:nowrap;justify-content:center;align-items:center;padding:0;display:inline-flex}.account-chip span:last-child{text-overflow:ellipsis;min-width:0;overflow:hidden}.account-chip:hover,.account-chip.is-signed-in{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.account-chip:disabled{cursor:not-allowed;opacity:.55}.account-dot{background:#46d68c;border-radius:999px;flex:none;width:8px;height:8px;box-shadow:0 0 0 2px #ffffffc2}.tool-row{pointer-events:auto;justify-content:center;align-items:center;gap:8px;display:flex}.tool-group{align-items:center;gap:4px;padding:5px;display:flex}.mode-toggle,.snap-mode-toggle,.time-toggle{pointer-events:auto;border:1px solid var(--border);background:var(--material-paper-grain), var(--panel);box-shadow:var(--material-shadow-low);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:8px;display:inline-flex;overflow:hidden}.mode-toggle button,.snap-mode-toggle button{min-height:40px;color:var(--color-ink-label);cursor:pointer;font-size:13px;font-weight:var(--weight-control);background:#ffffffdb;border:0;padding:0 12px}.time-toggle button{min-width:46px;min-height:40px;color:var(--color-ink-label);cursor:pointer;font-size:13px;font-weight:var(--weight-control);background:#ffffffdb;border:0;padding:0 10px}.mode-toggle button:hover,.time-toggle button:hover,.snap-mode-toggle button:hover{background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.mode-toggle button.is-active,.time-toggle button.is-active,.snap-mode-toggle button.is-active{background:var(--color-route-teal-strong);color:var(--color-ink-inverse);font-weight:var(--weight-strong)}.mode-toggle button:disabled,.time-toggle button:disabled,.snap-mode-toggle button:disabled{cursor:not-allowed;color:#18201f52}.icon-button,.action-button{pointer-events:auto;min-width:40px;min-height:40px;color:var(--text);cursor:pointer;background:#fffffff0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:8px;transition:background .14s,color .14s,transform .14s;display:inline-flex}.icon-button:hover,.action-button:hover{background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.icon-button:active,.action-button:active{transform:translateY(1px)}.icon-button:disabled,.action-button:disabled{cursor:not-allowed;color:#18201f52;transform:none}.action-button:disabled,.action-button:disabled:hover{color:#18201f5c;background:#ffffffad;border-color:#18201f14}.icon-button.is-active{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.action-button{border-color:var(--color-route-teal-border);color:var(--accent-strong);font-weight:var(--weight-primary);white-space:nowrap;background:#fffffff5;padding:0 14px}.action-button:hover{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong)}.action-button.secondary{border-color:var(--color-route-teal-border);color:var(--accent-strong);background:#fffffff5}.bottom-panel{z-index:20;left:max(14px, env(safe-area-inset-left));right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));pointer-events:none;grid-template-columns:minmax(300px,430px);justify-content:start;align-items:end;gap:12px;display:grid;position:absolute}.bottom-panel.is-walks-mode{grid-template-columns:minmax(320px,460px);justify-content:start}.metrics-panel,.walks-panel{pointer-events:auto;border:1px solid var(--border);background:var(--material-paper-grain), var(--material-panel-raised);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform-origin:0 100%;scrollbar-width:thin;border-radius:8px;max-height:min(76vh,720px);padding:14px;animation:.22s cubic-bezier(.2,0,0,1) both panel-enter;overflow:auto}.mobile-sheet-handle,.mobile-primary-action,.mobile-draw-controls,.mobile-generate-controls,.generate-start-control{display:none}.metrics-panel.is-generate-mode .mobile-generate-controls,.metrics-panel.is-generate-mode .mobile-primary-action{margin-bottom:10px;display:grid}.metrics-panel.is-generate-mode .mobile-duration-toggle{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.metrics-panel.is-generate-mode .mobile-duration-toggle button{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);min-width:0;min-height:40px;box-shadow:var(--material-field-shadow);color:var(--color-ink-label);cursor:pointer;font-size:13px;font-weight:var(--weight-control);border-radius:8px}.metrics-panel.is-generate-mode .mobile-duration-toggle button:hover,.metrics-panel.is-generate-mode .mobile-duration-toggle button.is-active{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse);font-weight:var(--weight-strong)}.metrics-panel.is-generate-mode .mobile-duration-toggle button:disabled{cursor:not-allowed;opacity:.55}.metrics-panel.is-generate-mode .generate-start-control{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);box-shadow:var(--material-field-shadow);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:8px 10px;display:flex}.generate-start-control div{gap:2px;min-width:0;display:grid}.generate-start-control span{color:var(--color-ink-label);font-family:var(--font-ui);font-size:11px;font-weight:var(--weight-label);line-height:1}.generate-start-control strong{color:var(--text);font-family:var(--font-ui);font-size:14px;font-weight:var(--weight-label);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.generate-start-control button{border:1px solid var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);min-height:34px;color:var(--color-ink-inverse);cursor:pointer;font-size:12px;font-weight:var(--weight-control);white-space:nowrap;border-radius:7px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.generate-start-control button:disabled{color:#18201f5c;cursor:not-allowed;background:#18201f14;border-color:#18201f14}.metrics-panel.is-generate-mode .mobile-primary-button{border:1px solid var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);min-height:44px;color:var(--color-ink-inverse);box-shadow:var(--material-shadow-low);cursor:pointer;font-family:var(--font-ui);font-size:14px;font-weight:var(--weight-primary);border-radius:8px;justify-content:center;align-items:center;gap:8px;line-height:1.1;display:inline-flex}.metrics-panel.is-generate-mode .mobile-primary-button:disabled{box-shadow:none;color:#18201f5c;cursor:not-allowed;background:#18201f14;border-color:#18201f14}.walks-panel-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.walks-panel-header h2{color:var(--text);font-family:var(--font-ui);font-size:17px;line-height:1.1;font-weight:var(--weight-display);margin:0}.walks-panel-header p{color:var(--color-ink-soft);margin:5px 0 0;font-size:12px;line-height:1.35}.walks-panel-header>span{color:var(--color-ink-label);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-quiet);white-space:nowrap;flex:none}.metric-grid{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);box-shadow:var(--material-field-shadow);border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.metric{background:0 0;min-height:76px;padding:10px 11px 11px;position:relative}.metric+.metric{border-left:1px solid var(--material-border-soft)}.metric-label{color:var(--color-ink-label);font-family:var(--font-ui);font-size:11px;line-height:1;font-weight:var(--weight-label);letter-spacing:0;align-items:center;gap:6px;display:flex}.metric-label svg{stroke-width:2.2px;background:#fffcf6ad;border:1px solid;border-radius:6px;width:22px;height:22px;padding:4px}.metric.is-distance .metric-label{color:var(--color-route-teal-strong)}.metric.is-time .metric-label{color:var(--color-start-rust-strong)}.metric.is-steps .metric-label{color:var(--color-poi-bathroom)}.metric-value{color:var(--text);font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-size:23px;line-height:.95;font-weight:var(--weight-strong);letter-spacing:0;white-space:nowrap;margin-top:10px}.step-estimate-control{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);box-shadow:var(--material-field-shadow);border-radius:7px;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:8px 10px;display:flex}.step-estimate-control div{gap:2px;min-width:0;display:grid}.step-estimate-control span{color:var(--color-ink-label);font-family:var(--font-ui);font-size:12px;line-height:1.25;font-weight:var(--weight-quiet)}.step-estimate-control strong{color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.2;font-weight:var(--weight-label);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.step-estimate-control button{border:1px solid var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);min-height:30px;color:var(--color-ink-inverse);cursor:pointer;font-size:12px;font-weight:var(--weight-control);border-radius:7px;flex:none;padding:0 10px}.step-estimate-control button:hover{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal)}.height-editor{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);box-shadow:var(--material-field-shadow);border-radius:7px;margin-top:8px;padding:10px;animation:.18s both panel-content-enter}.interest-control{border-top:1px solid var(--border);margin-top:10px;padding-top:10px;animation:.2s both panel-content-enter}.interest-control-header{color:var(--color-ink-label);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-quiet);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.interest-control-header span:first-child{color:var(--text);font-weight:var(--weight-label)}.interest-control-header span:last-child{overflow-wrap:anywhere;text-align:right;min-width:0}.interest-chip-list{flex-wrap:wrap;gap:6px;display:flex}.interest-chip{--interest-color:var(--color-route-teal-strong);--interest-bg:#007c7214;--interest-border:#007c722e;--interest-text:var(--color-route-teal-strong);border:1px solid var(--interest-border);background:var(--material-field-grain), linear-gradient(135deg, var(--interest-bg), #fffcf62e), var(--material-panel-inset);min-height:34px;box-shadow:var(--material-field-shadow);color:var(--text);cursor:pointer;font-size:12px;font-weight:var(--weight-control);border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.interest-chip:before{content:"";background:var(--interest-color);border-radius:999px;flex:none;width:8px;height:8px;box-shadow:0 0 0 2px #fffcf6c7}.interest-chip:hover{background:var(--material-field-grain), linear-gradient(135deg, var(--interest-bg), #fffcf657), var(--material-panel-hover)}.interest-chip.is-active{border-color:var(--interest-color);background:var(--material-field-grain), linear-gradient(135deg, var(--interest-bg), #fffcf64d), var(--material-panel-raised);color:var(--interest-text);font-weight:var(--weight-strong)}.interest-chip.is-active:before{box-shadow:0 0 0 2px #fffcf6d1, 0 0 0 5px var(--interest-bg)}.interest-chip--any{--interest-color:var(--color-route-teal-strong);--interest-bg:var(--color-route-teal-wash);--interest-border:var(--color-route-teal-border);--interest-text:var(--color-route-teal-strong)}.interest-chip--surprise{--interest-color:var(--color-start-rust);--interest-bg:#b4532a1c;--interest-border:#b4532a38;--interest-text:var(--color-start-rust-strong)}.interest-chip--coffee{--interest-color:var(--color-poi-coffee);--interest-bg:#9a4f1f1c;--interest-border:#9a4f1f38;--interest-text:#743714}.interest-chip--treat{--interest-color:var(--color-poi-treat);--interest-bg:#c2417d1a;--interest-border:#c2417d33;--interest-text:#8b2857}.interest-chip--park{--interest-color:var(--color-poi-park);--interest-bg:#1684571a;--interest-border:#16845733;--interest-text:#10653f}.interest-chip--grocery{--interest-color:var(--color-poi-grocery);--interest-bg:#3f7b321a;--interest-border:#3f7b3233;--interest-text:#315f27}.interest-chip--landmark{--interest-color:var(--color-poi-landmark);--interest-bg:#6d4bc81a;--interest-border:#6d4bc833;--interest-text:#50379a}.interest-chip--bathroom{--interest-color:var(--color-poi-bathroom);--interest-bg:#226d861a;--interest-border:#226d8633;--interest-text:#194f63}.interest-chip span{min-width:18px;color:var(--muted);font-size:10px;line-height:1;font-weight:var(--weight-label);background:#18201f14;border-radius:999px;padding:2px 5px}.interest-chip.is-active span{background:var(--color-route-teal-wash);color:var(--accent-strong)}.interest-chip:disabled{cursor:not-allowed;color:#18201f57;background:#18201f0f}.interest-chip:disabled:before{opacity:.34}.candidate-list{border-top:1px solid var(--border);margin-top:12px;padding-top:10px;animation:.22s both panel-content-enter}.candidate-list-header{color:var(--color-ink-label);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-quiet);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.candidate-options{gap:6px;display:grid}.candidate-option{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);width:100%;min-height:42px;box-shadow:var(--material-field-shadow);color:var(--text);cursor:pointer;text-align:left;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.candidate-option:hover{background:var(--material-panel-hover)}.candidate-option.is-active{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.candidate-option.is-active .candidate-meta{color:#fffc}.candidate-label{overflow-wrap:anywhere;min-width:0;font-family:var(--font-ui);font-size:13px;font-weight:var(--weight-label)}.candidate-meta{color:var(--color-ink-soft);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-quiet);white-space:nowrap}.route-interest-summary{border:1px solid var(--color-route-teal-border);background:linear-gradient(135deg, var(--color-route-teal-wash), #ffffff6b), var(--material-field-grain), var(--material-panel-inset);box-shadow:var(--material-field-shadow);border-radius:7px;gap:7px;margin-top:8px;padding:9px 10px;animation:.18s both panel-content-enter;display:grid}.route-interest-heading{color:var(--accent-strong);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-label)}.route-interest-summary p{color:#18201fc7;font-size:12px;line-height:1.35;font-weight:var(--weight-quiet);margin:0}.route-place-chips{flex-wrap:wrap;gap:6px;display:flex}.route-place-chip{border:1px solid var(--color-route-teal-border);color:var(--accent-strong);font-family:var(--font-ui);font-size:11px;font-weight:var(--weight-label);background:#ffffffd6;border-radius:999px;padding:4px 8px}.route-inline-error{background:linear-gradient(180deg, #ffffff94, #fff1ef24), var(--danger-bg);color:var(--danger);box-shadow:var(--material-field-shadow);border:1px solid #b4231833;border-radius:7px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;margin-top:10px;padding:9px 10px;animation:.18s both panel-content-enter;display:grid}.route-inline-error svg{stroke-width:2.3px;margin-top:1px}.route-inline-error div{gap:2px;min-width:0;display:grid}.route-inline-error strong{font-family:var(--font-ui);font-size:12px;line-height:1.2;font-weight:var(--weight-strong)}.route-inline-error span{overflow-wrap:anywhere;color:#b42318db;font-size:12px;line-height:1.35;font-weight:var(--weight-quiet)}.map-place-popup{gap:3px;min-width:148px;max-width:220px;padding:2px 0;display:grid}.map-place-popup-category{color:var(--accent-strong);font-family:var(--font-ui);font-size:10px;font-weight:var(--weight-label);letter-spacing:0;text-transform:uppercase}.map-place-popup-name{overflow-wrap:anywhere;min-width:0;color:var(--text);font-family:var(--font-ui);font-size:13px;font-weight:var(--weight-label)}.map-place-popup-meta{color:var(--color-ink-soft);font-family:var(--font-ui);font-size:11px;font-weight:var(--weight-quiet)}.generation-debug{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);box-shadow:var(--material-field-shadow);border-radius:7px;margin-top:8px}.generation-debug summary{color:var(--muted);cursor:pointer;font-size:12px;font-weight:var(--weight-label);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;list-style:none;display:flex}.generation-debug summary::-webkit-details-marker{display:none}.generation-debug p{color:var(--muted);border-top:1px solid #18201f14;margin:0;padding:7px 10px;font-size:11px;line-height:1.35}.generation-debug-list{scrollbar-width:thin;gap:5px;max-height:min(230px,32vh);margin:0;padding:0 8px 8px;list-style:none;display:grid;overflow:auto}.generation-debug-list li{border:1px solid var(--material-border-soft);background:#fffcf6c2;border-radius:6px;padding:7px 8px}.generation-debug-main{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.generation-debug-provider,.generation-debug-status{font-size:11px;font-weight:var(--weight-label)}.generation-debug-provider.is-valhalla{color:#43536f}.generation-debug-provider.is-google{color:var(--accent-strong)}.generation-debug-provider.is-places{color:var(--color-start-rust-strong)}.generation-debug-provider.is-matrix{color:#5a4d9a}.generation-debug-status{color:var(--muted);text-transform:capitalize;background:#18201f14;border-radius:999px;padding:2px 6px}.generation-debug-status.is-selected{background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.generation-debug-status.is-rejected,.generation-debug-status.is-failed{background:var(--color-start-rust-soft);color:var(--semantic-warn)}.generation-debug-endpoint,.generation-debug-meta{overflow-wrap:anywhere;color:var(--muted);font-size:11px;line-height:1.35}.generation-debug-meta{color:#18201fb8;font-weight:var(--weight-quiet);margin-top:2px}.waypoint-preview{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.waypoint-preview-header{color:var(--color-ink-label);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-quiet);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.waypoint-list{scrollbar-width:thin;gap:5px;max-height:min(220px,30vh);margin:0;padding:0;list-style:none;display:grid;overflow:auto}.waypoint-list li{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);min-height:30px;box-shadow:var(--material-field-shadow);border-radius:7px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:4px 7px 4px 5px;display:grid}.waypoint-order{background:var(--color-route-teal-strong);width:24px;height:22px;color:var(--color-ink-inverse);font-family:var(--font-ui);font-size:11px;font-weight:var(--weight-label);letter-spacing:0;border-radius:6px;place-items:center;display:grid}.waypoint-list code{overflow-wrap:anywhere;min-width:0;color:var(--text);font-family:var(--font-mono);font-size:11px;line-height:1.25}.panel-actions{gap:8px;margin-top:12px;display:flex}.panel-actions .action-button{flex:1}.walk-progress-state{border:1px solid var(--color-route-teal-border);background:var(--color-route-teal-soft);color:var(--color-route-teal-strong);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-label);border-radius:7px;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:9px 10px;animation:.18s both panel-content-enter;display:flex}.walk-progress-state span{color:var(--color-route-teal-strong);font-weight:var(--weight-quiet)}.route-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.walk-progress-state+.route-actions{margin-top:8px}.route-actions .walk-action.is-primary{grid-column:1/-1}.route-actions.is-walk-started .walk-action.is-primary{grid-column:auto}.walk-action{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);min-height:38px;box-shadow:var(--material-field-shadow);color:var(--text);cursor:pointer;font-family:var(--font-ui);font-size:13px;font-weight:var(--weight-control);text-align:center;border-radius:7px;justify-content:center;align-items:center;gap:7px;line-height:1.15;display:inline-flex}.walk-action:hover{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.walk-action.is-primary{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse);font-weight:var(--weight-primary)}.walk-action:disabled{cursor:not-allowed;color:#18201f57;background:#18201f14}.walk-library{gap:8px;display:grid}.walk-section{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);box-shadow:var(--material-field-shadow);border-radius:7px}.walk-section summary{min-height:38px;color:var(--muted);cursor:pointer;font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-label);justify-content:space-between;align-items:center;gap:10px;padding:0 10px;list-style:none;display:flex}.walk-section summary::-webkit-details-marker{display:none}.walk-section summary span:first-child{align-items:center;gap:6px;min-width:0;display:inline-flex}.walk-list{border-top:1px solid #18201f14;gap:8px;margin:0;padding:8px;list-style:none;display:grid;overflow:visible}.walk-list-item{--walk-accent:var(--color-route-teal);--walk-accent-strong:var(--color-route-teal-strong);--walk-accent-bg:#007c721a;border:1px solid var(--material-border-soft);background:var(--material-field-grain), linear-gradient(135deg, var(--walk-accent-bg), #fffcf629), #fffcf6c7;box-shadow:var(--material-field-shadow), 0 4px 12px #18201f0d;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:grid;position:relative;overflow:hidden}.walk-list-item--any{--walk-accent:var(--color-route-teal);--walk-accent-strong:var(--color-route-teal-strong);--walk-accent-bg:#007c721a}.walk-list-item--surprise{--walk-accent:var(--color-start-rust);--walk-accent-strong:var(--color-start-rust-strong);--walk-accent-bg:#b4532a1c}.walk-list-item--coffee{--walk-accent:var(--color-poi-coffee);--walk-accent-strong:#743714;--walk-accent-bg:#9a4f1f1c}.walk-list-item--treat{--walk-accent:var(--color-poi-treat);--walk-accent-strong:#8b2857;--walk-accent-bg:#c2417d1a}.walk-list-item--park{--walk-accent:var(--color-poi-park);--walk-accent-strong:#10653f;--walk-accent-bg:#1684571a}.walk-list-item--food{--walk-accent:var(--color-poi-food);--walk-accent-strong:#8c3d15;--walk-accent-bg:#c056211a}.walk-list-item--grocery{--walk-accent:var(--color-poi-grocery);--walk-accent-strong:#315f27;--walk-accent-bg:#3f7b321a}.walk-list-item--landmark{--walk-accent:var(--color-poi-landmark);--walk-accent-strong:#50379a;--walk-accent-bg:#6d4bc81a}.walk-list-item--bathroom{--walk-accent:var(--color-poi-bathroom);--walk-accent-strong:#194f63;--walk-accent-bg:#226d861a}.walk-list-item--source-generated{--walk-accent:var(--color-library-rust);--walk-accent-strong:var(--color-library-rust-strong);--walk-accent-bg:var(--color-library-rust-bg)}.walk-list-item--source-draw{--walk-accent:var(--color-library-slate);--walk-accent-strong:var(--color-library-slate-strong);--walk-accent-bg:var(--color-library-slate-bg)}.walk-list-accent{background:var(--walk-accent);opacity:.8;border-radius:999px;width:3px;position:absolute;top:9px;bottom:9px;left:6px}.walk-list-item.is-previewed{border-color:var(--walk-accent);background:var(--material-field-grain), linear-gradient(135deg, var(--walk-accent-bg), #fffcf647), var(--material-panel-raised)}.walk-list-main{width:100%;min-width:0;color:var(--text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:9px;padding:0;display:grid}.walk-route-glyph{border:1px solid color-mix(in srgb, var(--walk-accent) 28%, var(--material-border-soft));background:radial-gradient(circle at 72% 22%, #ffffffb8, transparent 28px), linear-gradient(135deg, var(--walk-accent-bg), #fffcf685);border-radius:7px;place-items:center;width:46px;height:46px;display:grid;box-shadow:inset 0 1px #ffffffad}.walk-route-glyph svg{width:38px;height:38px;overflow:visible}.walk-route-glyph path{fill:none;stroke:var(--walk-accent-strong);stroke-linecap:round;stroke-linejoin:round;stroke-width:3.2px;vector-effect:non-scaling-stroke}.walk-list-copy{gap:2px;min-width:0;display:grid}.walk-list-kicker{color:var(--walk-accent-strong);font-family:var(--font-ui);font-size:10px;font-weight:var(--weight-label);line-height:1.15}.walk-list-main:hover .walk-list-title{color:var(--walk-accent-strong)}.walk-list-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-ui);font-size:13px;font-weight:var(--weight-label);overflow:hidden}.walk-list-meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-ink-soft);font-family:var(--font-ui);font-size:11px;font-weight:var(--weight-quiet);overflow:hidden}.walk-list-actions{justify-content:flex-end;align-items:center;gap:5px;display:inline-flex;position:relative}.walk-list-actions button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.walk-list-actions button:hover{color:var(--text);background:#18201f14}.rewalk-button{min-height:34px;font-size:12px;font-weight:var(--weight-control);gap:5px;padding:0 10px;border:1px solid color-mix(in srgb, var(--walk-accent) 24%, var(--material-border-soft))!important;color:var(--walk-accent-strong)!important;background:#fffcf694!important}.rewalk-button:hover{background:var(--walk-accent-bg)!important}.walk-overflow{z-index:2;position:relative}.walk-overflow[open]{z-index:40}.walk-overflow summary{width:31px;height:31px;min-height:31px;color:var(--muted);cursor:pointer;font-size:16px;font-weight:var(--weight-strong);border-radius:7px;place-items:center;padding:0;line-height:1;list-style:none;display:grid}.walk-overflow summary::-webkit-details-marker{display:none}.walk-overflow summary:hover{color:var(--text);background:#18201f14}.walk-overflow-menu{z-index:30;border:1px solid var(--material-border);background:var(--material-paper-grain), var(--material-panel-solid);min-width:116px;box-shadow:var(--material-shadow);border-radius:7px;padding:5px;position:absolute;top:calc(100% + 6px);right:0}.walk-overflow-menu button{width:100%;min-height:32px;color:var(--text);font-size:12px;font-weight:var(--weight-quiet);text-align:left;justify-content:flex-start;padding:0 9px}.walk-overflow-menu button:last-child{color:var(--danger)}.walk-empty{color:var(--muted);border-top:1px solid #18201f14;margin:0;padding:9px 10px 10px;font-size:12px;line-height:1.35}.height-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.height-title{font-family:var(--font-ui);font-size:14px;line-height:1;font-weight:var(--weight-label);margin:0}.unit-toggle{border:1px solid var(--border);border-radius:7px;display:inline-flex;overflow:hidden}.unit-toggle button{min-height:30px;color:var(--muted);cursor:pointer;font-size:12px;font-weight:var(--weight-control);background:0 0;border:0;padding:0 10px}.unit-toggle button.is-active{background:var(--color-route-teal-strong);color:var(--color-ink-inverse)}.height-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.height-inputs.metric-mode{grid-template-columns:minmax(0,1fr)}.field{gap:5px;display:grid}.field label{color:var(--color-ink-label);font-family:var(--font-ui);font-size:12px;font-weight:var(--weight-quiet)}.field input{border:1px solid var(--border);background:var(--material-field-grain), #fffcf6d1;width:100%;min-height:40px;color:var(--text);border-radius:7px;outline:none;padding:0 10px}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--color-route-teal-focus)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:1.25s linear infinite spin}.action-button .spinner,.walk-action .spinner{opacity:.84;animation-duration:1.45s}@keyframes panel-enter{0%{opacity:0;transform:translateY(8px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes panel-content-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes generate-start-glow{0%,to{opacity:.86;box-shadow:0 0 #b4532a00}50%{opacity:1;box-shadow:0 0 24px #b4532a1f}}@keyframes reveal-generate-loading-label{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.spinner,.metrics-panel,.walks-panel,.height-editor,.interest-control,.candidate-list,.route-interest-summary,.walk-progress-state,.generate-start-crosshair.is-loading,.generate-loading-label{animation:none}.generate-start-crosshair.is-loading{opacity:1}.generate-loading-label{opacity:1;transform:none}.generate-loading-indicator img{display:none}.generate-loading-indicator:before{content:"";background:var(--panel-solid);border:1px solid var(--border);width:34px;height:34px;box-shadow:var(--shadow);border-radius:50%}.generate-loading-indicator:after{content:"";border:2px solid var(--color-start-rust);border-top-width:5px;border-radius:45% 55% 50% 50%;width:18px;height:18px;position:absolute;transform:rotate(-18deg)}}@media (max-width:900px){.top-toolbar{align-items:flex-start}.brand-chip{display:none}.tool-row{justify-content:space-between;width:100%}.bottom-panel,.bottom-panel.is-walks-mode{grid-template-columns:1fr}}@media (max-width:640px),(max-height:480px) and (pointer:coarse){.top-toolbar{top:max(10px, env(safe-area-inset-top));left:max(10px, env(safe-area-inset-left));right:max(10px, env(safe-area-inset-right));justify-content:stretch;justify-items:stretch;gap:8px;display:grid}.tool-row{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"route-mode account locate""lab lab lab";justify-self:stretch;align-items:start;gap:8px 12px;width:100%;display:grid}.mode-toggle{grid-area:route-mode;justify-self:start;max-width:100%}.tool-group{grid-area:tools;justify-self:start}.route-lab-chip{grid-area:lab;justify-self:start}.top-locate-button{grid-area:locate;justify-self:end;width:44px;min-width:44px;padding:0}.top-locate-button span{display:none}.account-chip{grid-area:account;justify-self:end;width:44px;min-width:44px;padding:0}.account-chip span:last-child{display:none}.tool-group:not(.compact-tools){justify-content:space-between;width:100%}.tool-row>.tool-group,.tool-row>.snap-mode-toggle{display:none}.snap-mode-toggle,.time-toggle{scrollbar-width:thin;grid-area:duration;justify-self:start;max-width:100%;overflow-x:auto}.tool-row>.time-toggle,.tool-row>.action-button{display:none}.action-button{min-width:44px;padding:0 12px}.mode-toggle button,.snap-mode-toggle button,.time-toggle button{min-height:44px;padding:0 9px;font-size:12px}.auth-modal-backdrop{padding:0 10px max(8px, env(safe-area-inset-bottom));align-items:end}.auth-modal{border-radius:16px 16px 0 0;padding:15px 12px 12px}.auth-email-form div{grid-template-columns:1fr}.auth-provider-button,.auth-email-form input,.auth-email-form button,.auth-secondary-button{min-height:46px}.bottom-panel{padding:0 max(10px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));align-items:end;gap:8px;bottom:0;left:0;right:0}.metrics-panel,.walks-panel{transform-origin:bottom;border-radius:16px 16px 0 0;width:100%;padding:0 10px 10px;scroll-padding-top:46px;transition:max-height .22s cubic-bezier(.2,0,0,1),border-radius .22s cubic-bezier(.2,0,0,1)}.bottom-panel.is-sheet-peek .metrics-panel,.bottom-panel.is-sheet-peek .walks-panel{max-height:178px;overflow:hidden}.bottom-panel.is-sheet-half .metrics-panel,.bottom-panel.is-sheet-half .walks-panel{max-height:min(54svh,520px);overflow:auto}.bottom-panel.is-sheet-full .metrics-panel,.bottom-panel.is-sheet-full .walks-panel{max-height:min(88svh,760px);overflow:auto}.bottom-panel.is-walks-mode.is-sheet-full .walks-panel{height:calc(100dvh - 82px);max-height:calc(100dvh - 82px)}.bottom-panel.is-sheet-peek .metrics-panel.has-route .mobile-draw-controls,.bottom-panel.is-sheet-peek .metrics-panel.has-route .mobile-generate-controls,.bottom-panel.is-sheet-peek .metrics-panel.has-route .mobile-primary-action,.bottom-panel.is-sheet-peek .metrics-panel.has-route .step-estimate-control,.bottom-panel.is-sheet-peek .metrics-panel.has-route .height-editor,.bottom-panel.is-sheet-peek .metrics-panel.has-route .interest-control,.bottom-panel.is-sheet-peek .metrics-panel.has-route .route-inline-error,.bottom-panel.is-sheet-peek .metrics-panel.has-route .candidate-list,.bottom-panel.is-sheet-peek .metrics-panel.has-route .route-interest-summary,.bottom-panel.is-sheet-peek .metrics-panel.has-route .generation-debug,.bottom-panel.is-sheet-peek .metrics-panel.has-route .waypoint-preview,.bottom-panel.is-sheet-peek .metrics-panel.has-route .walk-progress-state,.bottom-panel.is-sheet-peek .metrics-panel.has-route .route-actions .walk-action:not(.is-primary){display:none}.bottom-panel.is-sheet-peek .metrics-panel.has-route .route-actions .walk-action.is-primary{grid-column:1/-1}.mobile-sheet-handle{z-index:2;background:var(--material-panel-solid);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border:0;place-items:center;width:100%;min-height:44px;padding:0;display:grid;position:sticky;top:0}.mobile-sheet-handle span{background:#18201f47;border-radius:999px;width:42px;height:5px}.mobile-primary-action{margin-bottom:10px;scroll-margin-top:46px;display:grid}.mobile-draw-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:10px;scroll-margin-top:46px;display:grid}.mobile-draw-controls button{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);min-width:0;min-height:46px;box-shadow:var(--material-field-shadow);color:var(--text);cursor:pointer;font-size:12px;font-weight:var(--weight-control);border-radius:8px;justify-content:center;align-items:center;gap:5px;line-height:1;display:inline-flex}.mobile-draw-controls button.is-active{border-color:var(--color-start-rust-border);background:var(--color-start-rust-strong);color:var(--color-ink-inverse);font-weight:var(--weight-strong)}.mobile-draw-controls button:disabled{cursor:not-allowed;opacity:.48}.mobile-generate-controls{margin-bottom:10px;scroll-margin-top:46px;display:grid}.metrics-panel.is-generate-mode .generate-start-control{display:none}.mobile-duration-toggle{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.mobile-duration-toggle button{border:1px solid var(--material-border-soft);background:var(--material-field-grain), var(--material-panel-inset);min-width:0;min-height:44px;box-shadow:var(--material-field-shadow);color:var(--color-ink-label);cursor:pointer;font-size:13px;font-weight:var(--weight-control);border-radius:8px}.mobile-duration-toggle button.is-active{border-color:var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);color:var(--color-ink-inverse);font-weight:var(--weight-strong)}.mobile-duration-toggle button:disabled{cursor:not-allowed;opacity:.55}.mobile-primary-button{border:1px solid var(--color-route-teal-border-strong);background:var(--color-route-teal-strong);min-height:48px;color:var(--color-ink-inverse);box-shadow:var(--material-shadow-low);cursor:pointer;font-family:var(--font-ui);font-size:15px;font-weight:var(--weight-primary);border-radius:9px;justify-content:center;align-items:center;gap:8px;line-height:1.1;display:inline-flex}.mobile-primary-button:disabled{color:#18201f5c;box-shadow:none;cursor:not-allowed;background:#18201f14;border-color:#18201f14}.height-header{margin-bottom:7px}.height-editor{scroll-margin-top:56px}.height-title{font-size:13px}.height-inputs{gap:6px}.field{gap:3px}.field label{font-size:11px}.field input{min-height:44px;padding:0 9px}.unit-toggle button{min-width:44px;min-height:44px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{min-height:68px;padding:8px 9px 9px}.metric-label{gap:0}.metric-label span{display:none}.metric-label svg{width:21px;height:21px;padding:4px}.metric-value{margin-top:9px;font-size:20px}.step-estimate-control{gap:8px;padding:8px}.step-estimate-control button,.interest-chip,.candidate-option,.walk-action,.walk-section summary,.rewalk-button,.walk-overflow-menu button{min-height:44px}.walk-overflow summary{width:44px;height:44px;min-height:44px}.walks-panel{flex-direction:column;display:flex}.walks-panel-header{z-index:5;background:var(--material-panel-solid);border-bottom:1px solid #18201f14;margin:0 -10px 10px;padding:0 10px 10px;position:sticky;top:44px;box-shadow:0 10px 18px #18201f14}.walk-list-item{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px;overflow:visible}.walk-list-item:has(.walk-overflow[open]){z-index:30}.walk-list-main{grid-template-columns:44px minmax(0,1fr)}.walk-route-glyph{width:44px;height:44px}.walk-list-actions{grid-template-columns:minmax(0,1fr) 44px;justify-content:stretch;gap:7px;display:grid}.walk-list-actions .rewalk-button{width:100%}.walk-list-actions>.rewalk-button:only-child{grid-column:1/-1}.walk-overflow-menu{z-index:60;background:var(--material-panel-solid);min-width:140px;right:0}.metrics-panel.has-route .route-actions{z-index:3;background:linear-gradient(180deg, #ffffffe0, #fffffffa), var(--material-paper-grain);border-top:1px solid #18201f1a;margin:10px -10px -10px;padding:8px 10px 10px;position:sticky;bottom:0;box-shadow:0 -10px 22px #18201f14}@media (max-height:480px) and (pointer:coarse){.bottom-panel.is-sheet-peek .metrics-panel:not(.has-route){max-height:164px}.bottom-panel.is-sheet-peek .metrics-panel:not(.has-route) .metric-grid{display:none}}.waypoint-preview{margin-top:8px;padding-top:8px}.waypoint-list{max-height:128px}.waypoint-list li{grid-template-columns:32px minmax(0,1fr);min-height:28px}.panel-actions{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px;display:grid}.app-shell.is-drawing-session .map-surface{filter:saturate(.9)contrast(.96)}.app-shell.is-drawing-session:after{content:"";z-index:5;inset:max(72px, env(safe-area-inset-top)) 10px 190px;pointer-events:none;border:2px solid #b4532ab8;border-radius:14px;position:absolute;box-shadow:inset 0 0 0 1px #ffffffe6,0 8px 24px #18201f1f}}
