:root{--bg:#f7f5ef;--paper:#fffefb;--ink:#192e29;--secondary:#63716a;--line:#e4e6de;--soft:#ebeee5;--sage:#dce5d6;--link:#b63913;--forest:#234d3c;--good:#286046;--road:#fffefa;--map:#e8e8dc;--park:#c6d7b9;--arterial:#c3c3b2;--orange:#e65120;--radius:22px;--page-inset:22px;--sidebar-width:224px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}:root[data-theme=dark]{--bg:#131c19;--paper:#1e2925;--ink:#f1f1e8;--secondary:#b4beb6;--line:#35433b;--soft:#293a31;--sage:#344b3c;--link:#ff956d;--forest:#afd4ac;--good:#b6dcb8;--road:#829188;--map:#28362e;--park:#3c5842;--arterial:#56685d;--orange:#e65120;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scrollbar-gutter:stable}body{min-width:320px;margin:0}body,button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font-size:inherit}a{color:var(--link);text-underline-offset:3px}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:hover{text-decoration-thickness:2px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid var(--link);outline-offset:4px}main:focus{outline:none}h1,h2,h3,p{margin:0}h1{letter-spacing:-.04em;font-size:clamp(1.7rem,2.5vw,2.125rem);font-weight:750;line-height:1.14}h2{letter-spacing:-.025em;font-size:1.25rem;line-height:1.3}h3{letter-spacing:-.02em;font-size:1.05rem}p{overflow-wrap:break-word}img,svg{max-width:100%}img{object-fit:contain}button,input,select,textarea{color:inherit}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{border:1px solid var(--line);background:var(--paper);border-radius:12px;width:100%;min-height:44px;padding:.65rem .8rem}input[type=range]{width:100%;accent-color:var(--forest);min-height:44px}input[type=checkbox],input[type=radio]{accent-color:var(--forest);width:1.15rem;height:1.15rem}label{gap:.4rem;font-size:.88rem;font-weight:600;display:grid}fieldset{border:1px solid var(--line);border-radius:16px;min-width:0;margin:0;padding:1rem}legend{color:var(--secondary);padding-inline:.3rem}figure,blockquote{margin:0}hr{border:0;border-top:1px solid var(--line)}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.75rem}table caption{text-align:left;padding-block:.75rem;font-weight:700}.card{border:1px solid var(--line);background:var(--paper);border-radius:var(--radius);min-width:0;padding:1.5rem}.card.sage{background:var(--sage);border-color:#0000}.stack{flex-direction:column;gap:1rem;min-width:0;display:flex}.grid{gap:1.25rem;min-width:0;display:grid}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.muted{color:var(--secondary)}.eyebrow{color:var(--secondary);letter-spacing:.13em;text-transform:uppercase;font-size:.72rem;font-weight:700;line-height:1.3}.badge{background:var(--soft);color:var(--forest);border-radius:99px;align-items:center;padding:.3rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.button{min-height:44px;color:var(--paper);background:var(--ink);text-align:center;border:1px solid #0000;border-radius:16px;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1rem;font-weight:650;line-height:1.4;text-decoration:none;display:inline-flex}.button:hover{filter:brightness(1.08);text-decoration:none}.button.secondary,.button-secondary{color:var(--ink);background:var(--soft);border-color:var(--line)}.button.danger{background:var(--link);color:var(--paper)}.button.strava-connect{color:#fff;background:#fc4c02;border-radius:12px}.text-button{min-height:44px;color:var(--link);background:0 0;border:0;padding:.5rem;text-decoration:underline}.icon-button{background:var(--soft);width:44px;min-height:44px;color:var(--ink);border:0;border-radius:50%;place-items:center;padding:.6rem;display:inline-grid}.notice{border:1px solid var(--line);background:var(--soft);border-radius:16px;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.9rem 1.1rem;font-size:.86rem;display:flex}.notice p{flex:250px}.notice a{font-weight:650}.error-notice{border-color:var(--link)}.spinner{border:2px solid var(--line);border-top-color:var(--forest);border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.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}.skip-link{z-index:100;background:var(--paper);border:2px solid var(--link);border-radius:10px;padding:.75rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-shell{min-height:100dvh}.site-body{min-width:0;max-width:1600px;margin-inline:auto}.site-header{align-items:center;gap:1.4rem;min-height:82px;padding:18px 32px;display:flex}.brand{min-height:44px;color:var(--ink);white-space:nowrap;align-items:center;gap:.65rem;font-size:1.2rem;font-weight:750;text-decoration:none;display:inline-flex}.brand img{border-radius:11px}.current-page{font-size:1.1rem;font-weight:700}.header-controls{align-items:center;gap:.6rem;margin-left:auto;display:flex}.language-control select{background:0 0;border-color:#0000;width:auto;min-width:85px;padding-inline:.45rem;font-size:.8rem}.theme-toggle{background:0 0;font-size:1.2rem}.avatar{width:42px;height:42px;color:var(--forest);background:var(--sage);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-flex}.public-navigation{align-items:center;gap:1.4rem;font-size:.88rem;display:flex}.public-navigation a{color:var(--secondary);text-decoration:none}.public-navigation .router-link-active{color:var(--link)}.main-content{min-width:0;min-height:60dvh;padding:10px 32px 24px}.main-content>.notice{margin-bottom:1rem}.authenticated .site-body{margin-left:var(--sidebar-width)}.desktop-sidebar{z-index:10;width:calc(var(--sidebar-width) - 20px);background:var(--soft);border-radius:var(--radius);flex-direction:column;gap:1rem;padding:20px 12px 14px;display:flex;position:fixed;top:18px;bottom:18px;left:12px}.desktop-sidebar .brand{gap:.5rem;padding:0 4px;font-size:1rem}.desktop-sidebar .brand img{width:34px;height:34px}.sidebar-caption{max-width:140px;margin-top:1.75rem;margin-left:.75rem}.sidebar-navigation{gap:.5rem;display:grid}.sidebar-navigation a{min-height:48px;color:var(--secondary);border-radius:14px;align-items:center;gap:.65rem;padding:.75rem .7rem;font-size:.91rem;font-weight:600;text-decoration:none;display:flex}.sidebar-navigation svg,.mobile-navigation svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linejoin:round;stroke-linecap:round;flex-shrink:0;width:22px;height:22px}.sidebar-navigation .router-link-active{background:var(--paper);color:var(--link)}.sidebar-secondary{gap:.25rem;margin-top:auto;font-size:.79rem;display:grid}.sidebar-secondary a{min-height:44px;color:var(--secondary);align-items:center;gap:.6rem;padding:.55rem .7rem;text-decoration:none;display:flex}.sidebar-secondary a:hover{color:var(--link)}.sidebar-secondary .sidebar-upgrade{color:var(--forest);font-weight:700}.sidebar-upgrade span{font-size:1.5rem}.sidebar-identity{border-top:1px solid var(--line);color:var(--secondary);overflow-wrap:anywhere;align-items:center;gap:.6rem;padding:.9rem .4rem 0;font-size:.76rem;text-decoration:none;display:flex}.sidebar-identity strong,.sidebar-identity small{display:block}.site-footer{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem 2rem;padding:24px 32px 30px;display:flex}.site-footer nav{flex-wrap:wrap;justify-content:center;gap:.4rem 1.1rem;font-size:.75rem;display:flex}.site-footer a{color:var(--secondary);align-items:center;min-height:44px;display:inline-flex}.strava-attribution img{display:block}.strava-attribution .powered-dark,:root[data-theme=dark] .strava-attribution .powered-light{display:none}:root[data-theme=dark] .strava-attribution .powered-dark{display:block}.mobile-navigation{display:none}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);max-width:min(560px,100vw - 32px);padding:1.5rem}dialog::backdrop{background:#13251fb0}@media (width>=1600px){.authenticated .site-body{max-width:calc(1600px - var(--sidebar-width))}}@media (width<=1000px){:root{--sidebar-width:200px}.site-header{gap:.8rem;padding-inline:22px}.main-content{padding-inline:22px}.desktop-sidebar .brand{font-size:.88rem}.public-navigation{gap:.85rem}}@media (width<=760px){.desktop-sidebar{display:none}.authenticated .site-body{padding-bottom:calc(75px + env(safe-area-inset-bottom));margin-left:0}.site-header{flex-wrap:wrap;gap:.6rem;min-height:70px;padding:12px 16px}.brand{font-size:1.05rem}.brand img{width:36px;height:36px}.current-page{font-size:1rem}.header-controls{gap:.1rem}.header-avatar{display:none}.language-control select{min-width:74px;max-width:96px}.theme-toggle{width:44px}.public-navigation{flex-wrap:wrap;order:3;justify-content:center;gap:.5rem 1.25rem;width:100%}.public-navigation a{align-items:center;min-height:44px;display:inline-flex}.main-content{padding:8px 16px 16px}.card{padding:1.15rem}.two-columns{grid-template-columns:minmax(0,1fr)}.site-footer{padding:18px 16px}.mobile-navigation{padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);z-index:30;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-navigation a{min-height:48px;color:var(--secondary);text-align:center;overflow-wrap:anywhere;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:.3rem .15rem;font-size:.67rem;line-height:1.2;text-decoration:none;display:flex}.mobile-navigation a.router-link-active{color:var(--link)}.mobile-navigation svg{width:23px;height:23px}.notice{padding:.8rem;font-size:.8rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
