:root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#293d32;background:#f6f5ef;font-synthesis:none;--muted:#687569;--line:#e1e5da;--accent:#335b48}
*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #87a68f;outline-offset:4px}
.account-header{display:flex;align-items:center;justify-content:space-between;padding:calc(24px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 24px max(24px,env(safe-area-inset-left));max-width:1120px;margin:auto}.account-brand{display:inline-flex;align-items:center;gap:10px;font-size:30px;letter-spacing:-1.7px;font-weight:650;text-decoration:none}.account-brand img{display:block;object-fit:contain;flex:none}.map-link{font-size:13px;text-decoration:none;min-height:44px;display:flex;align-items:center;gap:10px}
.account-main{max-width:620px;margin:40px auto 70px;padding:0 24px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.14em;color:var(--muted);margin:0 0 16px}h1{font-size:clamp(38px,7vw,52px);font-weight:500;letter-spacing:-2px;line-height:1.05;margin:0 0 16px}h2{font-size:21px;line-height:1.3;font-weight:550;letter-spacing:-.55px;margin:0 0 12px}p{font-size:14px;line-height:1.6;color:var(--muted);margin:10px 0 18px}.account-status{min-height:24px;margin:0 0 24px}.account-status:empty{display:none}
.account-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;margin-bottom:28px}label{display:block;font-size:12px;font-weight:550;margin:20px 0 8px}input{width:100%;border:1px solid #d4dcd2;border-radius:10px;padding:14px;background:#fff;color:#293d32;min-height:50px;font-size:16px}input:focus{border-color:#769680}input::placeholder{color:#90998f}.primary,.quiet{border:0;border-radius:10px;min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;text-decoration:none;font-size:13px;font-weight:550}.primary{background:var(--accent);color:white}.primary:hover{background:#274c3b}.quiet{background:transparent;color:#476252}.quiet:hover{background:#e9ede4}form>.primary{width:100%;margin-top:12px}.fine-print{font-size:11px;line-height:1.6;margin-bottom:0}.form-message{font-size:13px;line-height:1.5}.form-message:empty{display:none}.form-message[data-error=true]{color:#905135}
.account-identity{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:12px;color:var(--muted)}#account-identity{overflow:hidden;text-overflow:ellipsis}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 10px}.library-heading h2{margin:0}.route-library{list-style:none;padding:0;margin:0}.saved-route{padding:18px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px}.saved-route-content{min-width:0;flex:1}.saved-route h3{font-size:16px;font-weight:550;letter-spacing:-.25px;margin:0 0 6px;overflow-wrap:anywhere}.saved-route p{font-size:11px;margin:0}.saved-route-actions{display:flex;gap:4px}.saved-route-actions button{min-width:44px;padding:10px}.saved-route-delete{font-size:12px}.save-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.save-buttons .primary{flex:1}.account-footer{font-size:11px;color:var(--muted);text-align:center;padding:12px 24px calc(30px + env(safe-area-inset-bottom))}.account-dialog{max-width:440px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:20px;padding:28px;background:#fafbf5;color:#293d32;box-shadow:0 15px 70px #172c3433}.account-dialog::backdrop{background:#142c254d;backdrop-filter:blur(3px)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:600px){.account-header{padding-left:20px;padding-right:20px}.account-main{padding:0 20px;margin-top:22px}.account-card{padding:23px 21px}.saved-route{align-items:flex-start;flex-wrap:wrap}.saved-route-actions{margin-left:auto}.saved-route-content{min-width:170px}.account-dialog{padding:24px}}

.sharing-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sharing-heading .eyebrow{margin-bottom:8px}.sharing-heading h2{overflow-wrap:anywhere}.sharing-close{flex:0 0 44px;padding:0;min-height:44px;font-size:27px;margin:-10px -10px 0 0}.sharing-state{font-size:15px;font-weight:600;color:#293d32;margin:10px 0 0}.sharing-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.route-sharing-dialog input{font-size:12px;min-height:46px;background:#fff}.route-sharing-dialog label{margin-top:20px}.route-sharing-dialog .form-message{margin-bottom:0}.saved-route-share{font-size:12px}.route-sharing-dialog{max-height:calc(100dvh - 32px);overflow:auto}.route-sharing-dialog .primary{flex:1}#route-sharing-disable{padding-left:0;color:#755244}

.save-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.save-actions>button{flex:1;min-height:44px}
.save-completion{display:flex;align-items:center;justify-content:space-between;gap:16px}.save-completion>div{min-width:0}.save-completion .eyebrow{margin-bottom:6px;color:var(--accent)}.save-completion h2{margin:0;overflow-wrap:anywhere}.save-completion button{flex-shrink:0}#save-draft[data-saved=true] .form-message{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Route-specific entry keeps saving and choosing a plan focused. */
body[data-route-intent=save] .library-heading,body[data-route-intent=save] #library-status,body[data-route-intent=save] #saved-routes,body[data-route-intent=save] #garmin-account,body[data-route-intent=library] #save-draft{display:none!important}
body[data-route-intent=save] .account-main> .eyebrow,body[data-route-intent=library] .account-main> .eyebrow{display:none}

/* Language changes keep the current form and account state intact. */
#account-language{display:flex;justify-content:flex-end;margin:0 0 24px}.language-control{display:flex;align-items:center;gap:10px;margin:0;font-size:13px;color:var(--muted)}.language-control select{font:inherit;color:#293d32;background:#fff;border:1px solid #d4dcd2;border-radius:10px;padding:10px 12px;min-height:44px;max-width:100%}.language-control select:focus-visible{outline:3px solid #87a68f;outline-offset:3px}.dialog-actions{flex-wrap:wrap}.primary,.quiet{white-space:normal;text-align:center}

/* One compact signup surface when a friend invitation brings someone here. */
body[data-friend-onboarding=active] .account-main>.eyebrow,body[data-friend-onboarding=active] #friend-join-title{display:none}
body[data-friend-onboarding=active] #friend-onboarding{margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:0}
body[data-friend-onboarding=active] #auth-guest{border-top:0;border-top-left-radius:0;border-top-right-radius:0;padding-top:0}
body[data-friend-onboarding=active] #friend-onboarding>p:first-of-type{margin-top:0}
body[data-friend-onboarding=active] #auth-guest,body[data-friend-onboarding=active][data-route-intent=beta] #auth-guest{margin-top:0;padding:1px 28px 28px;border:1px solid var(--line);border-top:0;background:#fff}
@media(max-width:600px){body[data-friend-onboarding=active] #auth-guest,body[data-friend-onboarding=active][data-route-intent=beta] #auth-guest{padding:1px 21px 23px}}

.billing-currency{display:flex;align-items:center;gap:12px;font-size:13px}.billing-currency select{font:inherit;color:var(--accent);background:#fff;border:1px solid #d4dcd2;border-radius:10px;padding:10px 12px;min-height:44px;max-width:100%}.billing-currency select:focus-visible{outline:3px solid #87a68f;outline-offset:3px}

/* Profile matches the native compact navigation hub. Full tools live in destinations. */
.account-main{max-width:616px;margin-top:24px}h1{font-size:32px;line-height:1.15;letter-spacing:-.8px;margin-bottom:18px}
.profile-back{display:inline-flex;align-items:center;min-height:44px;margin:0 0 8px;text-decoration:none;font-size:14px;color:var(--accent)}
.profile-back::before{content:'‹';font-size:28px;margin-right:10px}
#profile-identity{justify-content:flex-start;font-size:15px;min-height:44px;margin-bottom:24px;gap:12px}
#profile-identity>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#profile-identity svg{width:28px;height:28px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5}
.profile-group{margin-bottom:24px}
.profile-row{display:flex;align-items:center;gap:14px;padding:12px 0;min-height:72px;text-decoration:none}
.profile-row+.profile-row{border-top:1px solid var(--line)}
.profile-row:hover{background:#f0f3ec}.profile-row:focus-visible{outline-offset:-4px}
.profile-icon{width:26px;height:26px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.profile-row-copy{display:flex;flex-direction:column;min-width:0;gap:4px;flex:1}
.profile-row-copy strong{font-size:17px;line-height:1.25;font-weight:550;overflow-wrap:anywhere}
.profile-row-copy>span{font-size:15px;line-height:1.35;color:var(--muted);overflow-wrap:anywhere}
.profile-chevron{font-size:25px;line-height:1;color:var(--muted)}
.profile-import-tools summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:16px;font-weight:550}
.profile-language #account-language{justify-content:flex-start;margin:0}.profile-language .language-control{flex-wrap:wrap}
.profile-session{padding:12px 18px}.profile-session button{justify-content:flex-start;width:100%}
body[data-route-intent=beta] .profile-language,body[data-route-intent=beta] #billing-account,body[data-route-intent=beta] .profile-session,body[data-route-intent=beta] #diagnostic-replay-settings{display:none}
@media(max-width:600px){.account-header{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:10px}.account-main{margin-top:16px}.account-brand{font-size:24px}.account-brand img{width:30px;height:30px}}

/* Navigation still focuses the heading semantically; only keyboard input draws a ring. */
#account-title:focus{outline:none}
#account-title[data-keyboard-focus="true"]:focus{outline:2px solid #54764f;outline-offset:5px;border-radius:4px}
