:root{--color-bg:#f5f5f3;--color-surface:#fff;--color-text:#1a1a1a;--color-muted:#6b6b6b;--color-primary:#fc5200;--color-on-primary:#fff;--color-border:#e2e2e0;--color-success:#1a7f37;--color-danger:#c0392b;--color-warning-bg:#fff4e5;--color-warning-border:#f0c987;--color-warning-text:#7a4a00;--content-form-width:600px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}[data-theme=dark]{--color-bg:#15171a;--color-surface:#202226;--color-text:#f0f0f0;--color-muted:#9a9fa6;--color-primary:#ff7433;--color-on-primary:#fff;--color-border:#34373c;--color-success:#3fb96a;--color-danger:#ff6b5e;--color-warning-bg:#3a2f14;--color-warning-border:#6b5322;--color-warning-text:#f0c987;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-accent=aqua]{--color-primary:#00c2db;--color-on-primary:#0a0a0a}[data-accent=lime]{--color-primary:#65fe08;--color-on-primary:#0a0a0a}*{box-sizing:border-box}body{transition:background-color .15s,color .15s}a{color:var(--color-primary);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}.material-symbols-outlined{vertical-align:middle;-webkit-user-select:none;user-select:none;font-family:Material Symbols Outlined;font-size:1.25rem;font-style:normal;font-weight:400;line-height:1;display:inline-flex}body{background:var(--color-bg);color:var(--color-text);margin:0}button{background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.75rem 1.25rem;font-family:inherit;font-size:1rem;font-weight:600;display:inline-flex}button:disabled{opacity:.6;cursor:not-allowed}.link-button{color:var(--color-text);background:0 0;padding:.5rem;font-weight:500}input,select,textarea{border:1px solid var(--color-border);border-radius:6px;padding:.6rem;font-family:inherit;font-size:1rem}textarea{resize:vertical}label{flex-direction:column;gap:.35rem;margin-bottom:1rem;font-weight:500;display:flex}.navbar-brand{color:var(--color-primary);align-items:center;gap:.4rem;font-size:1.25rem;font-weight:800;display:flex}.navbar-topbar-actions{align-items:center;gap:1.25rem;display:flex}.navbar-topbar-actions a,.navbar-topbar-actions button{color:var(--color-text);align-items:center;gap:.35rem;font-weight:500;text-decoration:none;display:inline-flex}.navbar-topbar-actions a.active{color:var(--color-primary)}.navbar-sidebar{z-index:30;border-top:1px solid var(--color-border);border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;gap:.15rem;width:210px;padding:1rem .75rem;display:flex;position:fixed;top:64px;bottom:0;left:0;overflow-y:auto}.navbar-sidebar a{color:var(--color-text);border-radius:8px;align-items:center;gap:.6rem;padding:.6rem .75rem;font-weight:500;text-decoration:none;display:flex}.navbar-sidebar a.active{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.navbar-sidebar-profile{margin-top:auto;margin-bottom:.75rem}.navbar-sidebar-avatar{border-radius:8px}.navbar-sidebar-collapse-toggle{border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-muted);background:0 0;border-radius:8px;justify-content:center;align-self:flex-end;align-items:center;padding:0;display:flex}:root[data-sidebar-collapsed=true] .navbar-sidebar{width:64px}:root[data-sidebar-collapsed=true] .navbar-sidebar-label{display:none}:root[data-sidebar-collapsed=true] .navbar-sidebar a{justify-content:center}:root[data-sidebar-collapsed=true] .navbar-sidebar-collapse-toggle{align-self:center}@media (width>=641px){:root[data-sidebar-collapsed=true] .app-main{margin-left:64px}}.navbar-links{display:none}.navbar-links a,.navbar-links button{align-items:center;gap:.35rem;display:inline-flex}.navbar-links a{color:var(--color-text);font-weight:500;text-decoration:none}.navbar-links a.active{color:var(--color-primary)}.navbar-bottom-tabs{display:none}.page{max-width:720px;margin:0 auto;padding:1.5rem}@media (width>=1100px){.page{max-width:960px}}.shared-activity-page{background:var(--color-bg);min-height:100vh}.shared-activity-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.shared-activity-header-actions{align-items:center;gap:1rem;display:flex}.shared-activity-cta{text-align:center;margin-top:1.5rem}.page h1 .material-symbols-outlined{color:var(--color-primary);margin-right:.4rem;font-size:1.5rem}.page-center{justify-content:center;align-items:center;height:100vh;display:flex}.auth-page{background:radial-gradient(ellipse 70% 55% at 50% -10%, color-mix(in srgb, var(--color-primary) 30%, transparent), transparent 60%), var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}[data-theme=dark] .auth-page{background:radial-gradient(ellipse 65% 50% at 12% -8%, color-mix(in srgb, var(--color-primary) 32%, transparent), transparent 60%), radial-gradient(ellipse 60% 45% at 105% 105%, #3f6fb938, transparent 55%), var(--color-bg)}.auth-form{background:color-mix(in srgb, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--color-border);width:100%;max-width:360px;box-shadow:0 1px 3px #00000014, 0 0 60px -20px color-mix(in srgb, var(--color-primary) 45%, transparent);border-radius:12px;padding:2rem}.auth-logo{background:var(--color-primary);width:56px;height:56px;color:var(--color-on-primary);border-radius:14px;justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}.auth-logo .material-symbols-outlined{font-size:1.75rem}.auth-form button{width:100%}.oauth-buttons{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.oauth-button{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);font-weight:500}.auth-divider{color:var(--color-muted);align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.85rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.mode-toggle{margin:.25rem 0 1rem;font-size:.9rem}.auth-form h1{color:var(--color-primary);text-align:center;margin:0 0 .25rem}.auth-subtitle{color:var(--color-muted);text-align:center;margin:0 0 1.5rem}.form-error{color:var(--color-danger);font-weight:500}.stats-row{flex-wrap:wrap;gap:1rem;margin:1.5rem 0;display:flex}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;flex:130px;align-items:center;padding:1rem;display:flex}.stat-card .material-symbols-outlined{color:var(--color-primary);margin-bottom:.25rem;font-size:1.5rem}.contribution-calendar{margin:1rem 0 1.5rem;overflow-x:auto}.contribution-cell.level-0{fill:var(--color-border)}.contribution-cell.level-1{fill:color-mix(in srgb, var(--color-primary) 35%, transparent)}.contribution-cell.level-2{fill:color-mix(in srgb, var(--color-primary) 65%, transparent)}.contribution-cell.level-3{fill:var(--color-primary)}.elevation-chart{margin:1rem 0 1.5rem}.elevation-chart svg{width:100%;height:120px;display:block}.elevation-chart-area{fill:var(--color-primary);fill-opacity:.15;stroke:none}.elevation-chart-line{fill:none;stroke:var(--color-primary);stroke-width:2px;vector-effect:non-scaling-stroke}.elevation-chart-labels,.elevation-chart-footer{color:var(--color-muted);justify-content:space-between;font-size:.75rem;display:flex}.elevation-chart-labels{margin-top:.25rem}.segment-progress-heading{color:var(--color-muted);margin:0 0 .4rem;font-size:.85rem;font-weight:600}.segment-progress-chart{margin:0 0 1rem}.segment-progress-chart svg{width:100%;height:80px;display:block}.segment-progress-line{fill:none;stroke:var(--color-primary);stroke-width:2px;vector-effect:non-scaling-stroke}.segment-progress-point{fill:var(--color-surface);stroke:var(--color-primary);stroke-width:1.5px;vector-effect:non-scaling-stroke}.segment-progress-point.best{fill:var(--color-primary)}.segment-progress-footer{color:var(--color-muted);justify-content:space-between;margin-top:.25rem;font-size:.75rem;display:flex}.splits-list{border:1px solid var(--color-border);border-radius:10px;margin:0 0 1.5rem;padding:0;list-style:none;overflow:hidden}.splits-row{border-bottom:1px solid var(--color-border);grid-template-columns:2rem 1fr 1fr 1fr;align-items:center;gap:.5rem;padding:.6rem 1rem;display:grid}.splits-row:last-child{border-bottom:none}.splits-index{color:var(--color-muted);font-weight:500}.splits-pace,.splits-duration{text-align:right;font-variant-numeric:tabular-nums}.segment-effort-row{grid-template-columns:1fr 1fr 1fr auto}.gear-row{grid-template-columns:1fr auto auto auto auto}.gear-default-badge{text-transform:uppercase;letter-spacing:.03em;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:999px;padding:.1rem .5rem;font-size:.7rem;font-weight:600}.segment-effort-name{color:var(--color-text);align-items:center;gap:.4rem;font-weight:500;display:inline-flex}.segment-pr-badge{color:var(--color-primary);align-items:center;gap:.2rem;font-size:.85rem;font-weight:600;display:flex}.segment-pr-badge .material-symbols-outlined{font-size:1.1rem}.highlight-row{grid-template-columns:2rem 1fr auto auto}.highlight-label{font-weight:500}.highlight-time{color:var(--color-muted);text-align:right;font-variant-numeric:tabular-nums}.export-button-row{flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.activity-badge-row{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.activity-badge{background:var(--color-surface-muted,var(--color-border));border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .6rem;font-size:.85rem;font-weight:500;display:inline-flex}.activity-badge .material-symbols-outlined{font-size:1rem}.activity-description{white-space:pre-wrap;margin:0 0 1rem}.group-ride-feed-badge{color:var(--color-primary);align-items:center;gap:.25rem;margin-top:.2rem;font-size:.85rem;font-weight:500;display:inline-flex}.group-ride-feed-badge .material-symbols-outlined{font-size:1rem}.guest-add-form{align-items:center;gap:.75rem;margin:1rem 0;display:flex}.guest-add-form input{flex:1}.config-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.config-row:last-child{border-bottom:none}.config-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.connection-status{flex-shrink:0;align-items:center;gap:.3rem;font-size:.9rem;font-weight:500;display:inline-flex}.connection-status-connected{color:var(--color-success)}.connection-status-not_configured{color:var(--color-muted)}.connection-status-error{color:var(--color-danger)}.connection-status-checking{color:var(--color-muted)}.gear-picker-add{border:1px solid var(--color-border);border-radius:10px;margin:0 0 1rem;padding:.8rem}.gear-picker-add-actions{align-items:center;gap:1rem;margin-top:.5rem;display:flex}.rating-icons{gap:.1rem;display:flex}.empty-state{border:1px solid var(--color-border);color:var(--color-muted);border-radius:10px;padding:1.25rem;font-size:1rem}.gopro-panel{border:1px solid var(--color-border);border-radius:10px;margin:1rem 0;padding:.8rem 1rem}.gopro-connected-row{flex-wrap:wrap;align-items:center;gap:.4rem 1rem;display:flex}.gopro-connected-row>span{align-items:center;gap:.3rem;font-weight:500;display:flex}.stat-value{font-size:1.5rem;font-weight:700}.stat-label{color:var(--color-muted);font-size:.85rem}.activity-list{margin:0;padding:0;list-style:none}.activity-list li{border-bottom:1px solid var(--color-border)}.activity-list a{color:var(--color-text);flex-direction:column;gap:.25rem;padding:.9rem .25rem;text-decoration:none;display:flex}.activity-list a.activity-list-link{flex-direction:row;align-items:center;gap:.75rem}.activity-list-body{flex-direction:column;gap:.25rem;display:flex}.activity-author{color:inherit;align-items:center;gap:.5rem;margin-bottom:.5rem;text-decoration:none;display:inline-flex}.visibility-badge{color:var(--color-muted);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:.2rem;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.visibility-badge .material-symbols-outlined{font-size:.9rem}.activity-title{align-items:center;gap:.4rem;font-weight:600;display:flex}.activity-title .material-symbols-outlined{color:var(--color-primary)}.activity-meta{color:var(--color-muted);font-size:.9rem}.weather-inline-icon{vertical-align:text-bottom;font-size:1rem}.weather-banner{color:var(--color-muted);align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.weather-banner .material-symbols-outlined{color:var(--color-primary);font-size:1.4rem}.weather-banner-temp{color:var(--color-text);font-size:1.1rem;font-weight:700}.goal-progress{margin-bottom:1.5rem}.weekly-recap{border:1px solid var(--color-primary);background:color-mix(in srgb, var(--color-primary) 6%, transparent);border-radius:12px;margin:1.5rem 0;padding:1rem 1.25rem 1.25rem}.weekly-recap h2{margin:0 0 .15rem}.weekly-recap .stats-row{margin:1rem 0 0}.goal-progress-header{color:var(--color-muted);justify-content:space-between;margin-bottom:.4rem;font-size:.9rem;display:flex}.goal-progress-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;height:8px;overflow:hidden}.goal-progress-fill{background:var(--color-primary);border-radius:999px;height:100%;transition:width .3s}.route-map{border:1px solid var(--color-border);border-radius:12px;width:100%;height:320px;overflow:hidden}.heatmap-map{border:1px solid var(--color-border);border-radius:12px;width:100%;height:70vh;min-height:400px;margin-top:1rem;overflow:hidden}.planned-route-map{border:1px solid var(--color-border);cursor:crosshair;border-radius:12px;width:100%;height:50vh;min-height:320px;margin-top:1rem;overflow:hidden}.planned-route-draft-actions{align-items:center;gap:1rem;margin:.75rem 0 1.5rem;display:flex}.gpx-export-button{margin-top:.5rem}.track-setup{max-width:var(--content-form-width);flex-direction:column;gap:1rem;display:flex}.field-label{margin-bottom:.5rem;font-weight:500;display:block}.segmented-control{gap:.5rem;max-width:320px;margin-bottom:1.25rem;display:flex}.activity-filter-bar{max-width:var(--content-form-width);flex-direction:column;gap:.75rem;margin:1rem 0 1.5rem;display:flex}.activity-filter-bar .segmented-control{max-width:none;margin-bottom:0}.segment{background:var(--color-surface);width:auto;color:var(--color-text);border:1px solid var(--color-border);flex:1;font-size:.9rem;font-weight:500}.segment.selected{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.accent-swatch{border:1px solid #00000026;border-radius:50%;width:.9rem;height:.9rem}.activity-type-picker{gap:.5rem;margin-bottom:1rem;display:flex}.activity-type-option{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);flex-direction:column;flex:1;gap:.3rem;padding:.75rem .5rem;font-size:.85rem;font-weight:500}.activity-type-option .material-symbols-outlined{font-size:1.4rem}.activity-type-option.selected{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.hint{color:var(--color-muted);font-size:.85rem}.save-form{max-width:var(--content-form-width);margin-top:1.5rem;margin-bottom:1.5rem}.settings-section{margin-top:1.5rem}.section-divider{border:none;border-top:1px solid var(--color-border);margin:2rem 0 0}.provider-list{flex-direction:column;gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.provider-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;display:flex}.provider-row .hint{text-align:right}.provider-name{white-space:nowrap;flex-shrink:0;align-items:center;gap:.6rem;font-weight:600;display:flex}.provider-status{align-items:center;gap:.75rem;display:flex}.provider-connected{color:var(--color-success);align-items:center;gap:.3rem;font-size:.9rem;font-weight:500;display:inline-flex}.provider-connect-button{width:auto}.settings-form{max-width:360px}.settings-form-footer{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.settings-form-footer .link-button{white-space:nowrap}.trim-editor{max-width:var(--content-form-width)}.trim-editor input[type=range]{border:none;width:100%;padding:0}.form-success{color:var(--color-success);font-weight:500}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0}.avatar-placeholder{background:var(--color-border);color:var(--color-muted);justify-content:center;align-items:center;display:inline-flex}.avatar-placeholder .material-symbols-outlined{font-size:60%}.avatar-upload{align-items:center;gap:1.25rem;margin-bottom:1.5rem;display:flex}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem;margin:1rem 0;display:grid}.photo-grid-item{aspect-ratio:1;border:1px solid var(--color-border);border-radius:10px;position:relative;overflow:hidden}.photo-grid-item img{object-fit:cover;width:100%;height:100%;display:block}.photo-remove-button{color:#fff;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;padding:0;display:flex;position:absolute;top:.3rem;right:.3rem}.photo-remove-button .material-symbols-outlined{font-size:1rem}.photo-upload-label{cursor:pointer;align-items:center;gap:.4rem;margin-bottom:1rem;display:inline-flex}.profile-header{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.profile-header h1{margin:0}.tab-row{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.tab{color:var(--color-muted);border:1px solid var(--color-border);background:0 0;padding:.5rem 1rem;font-weight:500}.tab.selected{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.social-counts{color:var(--color-muted);flex-shrink:0;align-items:center;gap:.25rem;margin-left:auto;font-size:.85rem;display:inline-flex}.social-counts .material-symbols-outlined{font-size:1.1rem}.social-counts .material-symbols-outlined:not(:first-child){margin-left:.5rem}.activity-social{border-top:1px solid var(--color-border);margin-top:2rem;padding-top:1.5rem}.like-button{background:var(--color-surface);width:auto;color:var(--color-text);border:1px solid var(--color-border)}.like-button .material-symbols-outlined{color:var(--color-muted)}.like-button.liked{color:var(--color-primary);border-color:var(--color-primary)}.like-button.liked .material-symbols-outlined{color:var(--color-primary)}.comment-list{flex-direction:column;gap:1rem;margin:1rem 0;padding:0;list-style:none;display:flex}.comment-row{align-items:flex-start;gap:.75rem;display:flex}.comment-body{flex-direction:column;flex:1;gap:.15rem;display:flex}.comment-body p{margin:0}.comment-meta{color:var(--color-muted);font-size:.85rem}.comment-meta a{color:var(--color-text);font-weight:600;text-decoration:none}.comment-delete{flex-shrink:0;padding:.25rem}.comment-form{gap:.5rem;display:flex}.comment-form input{flex:1}.comment-form button{width:auto}.comment-reply-toggle{color:var(--color-muted);align-self:flex-start;padding:.1rem 0;font-size:.8rem}.comment-reply-list{border-left:2px solid var(--color-border);flex-direction:column;gap:.75rem;margin:.75rem 0 0;padding:0 0 0 2.5rem;list-style:none;display:flex}.comment-reply-form{margin:.5rem 0 0 2.5rem}.activity-detail-header{flex-direction:column;gap:.75rem;display:flex}.activity-detail-header h1{margin:0}.activity-detail-actions{flex-wrap:wrap;align-items:center;gap:1rem;width:100%;display:flex}.danger-button{background:var(--color-surface);width:auto;color:var(--color-danger);border:1px solid var(--color-danger)}.danger-text{color:var(--color-danger)}.club-actions{gap:.75rem;margin:1rem 0 1.5rem;display:flex}.club-actions button{width:auto}.challenges-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.challenge-form{max-width:var(--content-form-width);border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;flex-direction:column;gap:.75rem;margin:1rem 0 1.5rem;padding:1rem;display:flex}.challenge-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;margin:0 0 1.5rem;padding:1rem}.challenge-card-header{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.75rem;display:flex}.event-rsvp-actions{gap:.5rem;margin-top:.5rem;display:flex}.event-rsvp-button{border:1px solid var(--color-border);width:auto;color:var(--color-text);background:0 0;padding:.4rem .9rem;font-size:.85rem}.event-rsvp-button.active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.event-rsvp-summary{margin:.5rem 0 0}.challenge-progress-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.challenge-progress-row{align-items:center;gap:.6rem;display:flex}.challenge-progress-name{min-width:7rem;font-size:.9rem}.challenge-progress-bar{background:var(--color-border);border-radius:999px;flex:1;height:8px;overflow:hidden}.challenge-progress-bar-fill{background:var(--color-primary);border-radius:999px;height:100%}.achievement-grid{flex-wrap:wrap;gap:.75rem;margin:1rem 0 2rem;padding:0;list-style:none;display:flex}.achievement-badge{border:1px solid var(--color-border);background:var(--color-surface);width:84px;color:var(--color-muted);text-align:center;opacity:.5;border-radius:10px;flex-direction:column;align-items:center;gap:.3rem;padding:.75rem .5rem;display:flex}.achievement-badge .material-symbols-outlined{font-size:1.5rem}.achievement-badge.earned{opacity:1;color:var(--color-text);border-color:var(--color-primary)}.achievement-badge.earned .material-symbols-outlined{color:var(--color-primary)}.achievement-badge-title{font-size:.75rem;font-weight:500;line-height:1.2}.pr-list{flex-direction:column;gap:.5rem;margin:1rem 0 2rem;padding:0;list-style:none;display:flex}.pr-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.pr-type{align-items:center;gap:.4rem;min-width:5rem;font-weight:600;display:flex}.pr-stat{color:inherit;flex-direction:column;text-decoration:none;display:flex}.pr-stat-value{font-weight:700}.pr-stat-label{color:var(--color-muted);font-size:.8rem}.member-list{flex-direction:column;gap:.5rem;margin:1rem 0 2rem;padding:0;list-style:none;display:flex}.member-row{color:var(--color-text);align-items:center;gap:.6rem;font-weight:500;text-decoration:none;display:flex}.owner-badge{color:var(--color-primary);border:1px solid var(--color-primary);border-radius:999px;padding:.1rem .6rem;font-size:.75rem;font-weight:600}.admin-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.admin-row-actions{align-items:center;gap:.75rem;display:flex}.segment-row{flex-direction:column;align-items:stretch;gap:.5rem}.segment-row-main{width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;padding:0;font-weight:500;display:flex}.segment-row-name{text-align:left;flex:1}.segment-leaderboard{padding:.5rem 0 .75rem}.segment-leaderboard-list{counter-reset:leaderboard;flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.segment-leaderboard-row{counter-increment:leaderboard;align-items:center;gap:.5rem;display:flex}.segment-leaderboard-row:before{content:counter(leaderboard) ".";color:var(--color-muted);width:1.25rem}.segment-leaderboard-row.mine{color:var(--color-primary);font-weight:700}.segment-leaderboard-time{font-variant-numeric:tabular-nums;margin-left:auto}.banned-badge{color:var(--color-danger);align-items:center;gap:.3rem;font-size:.85rem;font-weight:500;display:inline-flex}.report-row{align-items:flex-start;gap:1rem}.report-row-main{flex-direction:column;flex:1;gap:.35rem;display:flex}.report-parties{align-items:center;gap:.5rem;display:flex}.report-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.report-reason{white-space:pre-wrap;margin:0}.report-row .admin-row-actions{flex-direction:column;flex-shrink:0;align-items:flex-end}.report-show-resolved{flex-direction:row;align-items:center;gap:.5rem;margin:1rem 0;font-weight:500;display:flex}.report-show-resolved input{width:auto}.report-form{margin-top:.75rem}.navbar-top{z-index:40;background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;height:64px;padding:0 1.5rem;display:flex;position:fixed;top:0;left:0;right:0}.navbar-menu-toggle{width:auto;color:var(--color-text);background:0 0;border:none;padding:.25rem;display:none}.app-main{margin-top:64px;margin-left:210px}@media (width<=640px){.navbar-top{height:60px;padding:0 1rem}.navbar-sidebar,.navbar-topbar-actions{display:none}:root .app-main{margin-top:60px;margin-left:0;padding-bottom:4.5rem}.navbar-menu-toggle{display:inline-flex}.navbar-links{z-index:35;background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-direction:column;align-items:stretch;gap:0;max-height:calc(100vh - 60px - 4.5rem);padding:.75rem 1rem 0;position:fixed;top:60px;left:0;right:0;overflow-y:auto}.navbar-links.open{display:flex}.navbar-links a,.navbar-links button{flex-direction:row;justify-content:flex-start;gap:.6rem;width:100%;padding:.7rem 0;font-size:1rem}.navbar-bottom-tabs{z-index:30;background:var(--color-surface);border-top:1px solid var(--color-border);padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0}.navbar-bottom-tabs a{color:var(--color-muted);flex-direction:column;flex:1;align-items:center;gap:.15rem;padding:.25rem 0;font-size:.65rem;text-decoration:none;display:flex}.navbar-bottom-tabs a.active{color:var(--color-primary)}.page{padding:1rem}label{margin-bottom:.75rem}.settings-section{margin-top:1rem}.section-divider{margin-top:1.25rem}.stats-row{flex-wrap:wrap}.stat-card{flex:40%}.oauth-buttons,.club-actions,.admin-row-actions{flex-wrap:wrap}.admin-row{flex-wrap:wrap;gap:.5rem}.segmented-control,.activity-type-picker{max-width:none}.health-workout-row{flex-wrap:wrap}}.health-workout-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem .25rem;display:flex}.health-workout-row .provider-connect-button{flex-shrink:0}.offline-banner{background:var(--color-warning-bg);border-bottom:1px solid var(--color-warning-border);color:var(--color-warning-text);align-items:center;gap:.75rem;padding:.75rem 1.5rem;display:flex}.offline-banner-text{flex-direction:column;flex:1;gap:.15rem;font-size:.9rem;display:flex}.offline-banner-error{color:var(--color-danger)}.offline-banner .link-button{color:var(--color-warning-text);flex-shrink:0;font-weight:600}.recovery-banner{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem;display:flex}.recovery-banner-actions{flex-shrink:0;gap:.5rem;display:flex}.recovery-banner-actions button{width:auto}.offline-hint{align-items:center;gap:.4rem;margin-bottom:1rem;display:flex}.paused-hint{color:var(--color-primary);align-items:center;gap:.4rem;margin-bottom:1rem;font-weight:500;display:flex}.gps-warning-hint{border-radius:var(--radius-md,8px);background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning-text);align-items:center;gap:.4rem;margin-bottom:1rem;padding:.6rem .8rem;font-weight:500;display:flex}.crash-banner{border:2px solid var(--color-danger);border-radius:var(--radius-md,8px);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);align-items:center;gap:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.crash-banner .material-symbols-outlined{flex-shrink:0;font-size:2rem}.crash-banner-body{flex:1}.crash-banner-body strong{display:block}.crash-banner-body p{color:var(--color-text);margin:.2rem 0 0}.crash-banner button{flex-shrink:0;width:auto}.manual-entry-hint{align-items:center;gap:.4rem;margin:1rem 0;display:flex}.checkbox-label{flex-direction:row;align-items:flex-start;gap:.5rem;font-weight:500;line-height:1.4}.checkbox-label input{flex-shrink:0;width:auto;margin-top:.2rem}.save-activity-actions{align-items:center;gap:1rem;display:flex}.private-lock{color:var(--color-muted);margin-left:.3rem;font-size:1rem!important}.notification-icon-wrap{display:inline-flex;position:relative}.notification-badge{background:var(--color-danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:.65rem;font-weight:700;line-height:1;display:flex;position:absolute;top:-6px;right:-8px}.message-search-box{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-muted);border-radius:10px;align-items:center;gap:.5rem;margin-top:1rem;padding:.5rem .9rem;display:flex}.message-search-box input{color:var(--color-text);background:0 0;border:none;flex:1;padding:0}.message-search-box input:focus{box-shadow:none;outline:none}.search-result-row{text-align:left;border:1px solid var(--color-border);background:var(--color-surface);width:100%}.search-result-row mark{background:color-mix(in srgb, var(--color-primary) 30%, transparent);color:inherit;border-radius:3px}.notification-day+.notification-day{margin-top:1.5rem}.notification-day-header{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.25rem;display:flex}.notification-day-header h2{margin:0;font-size:1rem}.notification-list{flex-direction:column;gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:flex}.notification-row{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:10px;align-items:center;gap:.75rem;padding:.9rem 1rem;text-decoration:none;display:flex}.notification-row.unread{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface))}.notification-body{flex-direction:column;flex:1;gap:.2rem;font-size:.9rem;display:flex}.notification-row .material-symbols-outlined:last-child{color:var(--color-muted);flex-shrink:0}.thread-row-item{align-items:stretch;gap:.5rem;display:flex}.thread-row-item .notification-row{flex:1}.thread-delete-icon-button{border:1px solid var(--color-border);color:var(--color-muted);background:0 0;border-radius:10px;padding:0 .75rem}.thread-delete-icon-button:hover{color:var(--color-danger);border-color:var(--color-danger)}.muted-icon{color:var(--color-muted);vertical-align:middle;font-size:.85rem!important}.thread-unread-badge{background:var(--color-primary);color:var(--color-on-primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.7rem;font-weight:700;display:flex}.message-thread-page{flex-direction:column;height:calc(100vh - 4rem);display:flex}.message-thread-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.message-thread-title{margin:0;font-size:1.1rem}.thread-delete-button{color:var(--color-danger);flex-shrink:0;align-items:center;gap:.35rem;font-size:.85rem;display:flex}.thread-header-actions{flex-shrink:0;align-items:center;gap:1rem;display:flex}.thread-header-actions .link-button{align-items:center;gap:.35rem;padding:.4rem;font-size:.85rem;display:flex}.group-avatar{background:var(--color-surface-hover,var(--color-surface));border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.group-avatar-upload{border-radius:50%;flex-shrink:0;padding:0;position:relative}.group-avatar-upload-overlay{color:#fff;opacity:0;background:#00000080;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.group-avatar-upload-overlay .material-symbols-outlined{font-size:1rem}.group-avatar-upload:hover .group-avatar-upload-overlay{opacity:1}.group-add-member-form{margin-bottom:.75rem}.user-search-results{flex-direction:column;gap:.3rem;max-height:220px;margin:.5rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.user-search-results button{background:var(--color-surface);border:1px solid var(--color-border);text-align:left;border-radius:8px;align-items:center;gap:.6rem;width:100%;padding:.5rem .75rem;display:flex}.user-search-results button span{flex:1}.group-member-chips{flex-wrap:wrap;gap:.4rem;margin:.25rem 0;display:flex}.group-member-chip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .6rem .2rem .3rem;font-size:.85rem;display:flex}.group-member-chip button{color:var(--color-muted);background:0 0;padding:0;display:flex}.message-sender-name{color:var(--color-muted);padding:0 .25rem;font-size:.75rem}.message-forwarded-tag{color:var(--color-muted);align-items:center;gap:.2rem;padding:0 .25rem;font-size:.7rem;display:flex}.message-forwarded-tag .material-symbols-outlined{font-size:.9rem}.pinned-panel{margin-top:.75rem}.pinned-toggle{align-items:center;gap:.35rem;padding:.3rem 0;font-size:.85rem;display:flex}.pinned-list{flex-direction:column;gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.pinned-list li{align-items:stretch;gap:.4rem;display:flex}.pinned-list li>button:first-child{background:var(--color-surface);border:1px solid var(--color-border);text-align:left;border-radius:8px;flex-direction:column;flex:1;align-items:flex-start;gap:.1rem;padding:.4rem .6rem;display:flex}.pinned-sender{color:var(--color-muted);font-size:.75rem;font-weight:600}.pinned-snippet{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.85rem;overflow:hidden}.pinned-list li>button:last-child{color:var(--color-muted);background:0 0;padding:0 .4rem}.forward-picker-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.forward-picker{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;width:90%;max-width:360px;max-height:70vh;padding:1.25rem;overflow-y:auto}.forward-picker-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.forward-picker-header h2{margin:0;font-size:1.05rem}.crop-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;align-items:center;gap:1rem;padding:1.25rem;display:flex}.crop-modal h2{align-self:flex-start;margin:0}.crop-viewport{border:1px solid var(--color-border);touch-action:none;cursor:grab;background:var(--color-bg);border-radius:50%;position:relative;overflow:hidden}.crop-viewport img{-webkit-user-select:none;user-select:none;max-width:none;position:absolute;top:0;left:0}.crop-modal input[type=range]{width:100%}.forward-picker-preview{border-left:2px solid var(--color-border);text-overflow:ellipsis;white-space:nowrap;margin:0 0 .75rem;padding-left:.6rem;overflow:hidden}.message-list{flex-direction:column;flex:1;gap:.6rem;padding:1rem 0;display:flex;overflow-y:auto}.message-bubble-wrap{flex-direction:column;align-self:flex-start;align-items:flex-start;gap:.2rem;max-width:75%;display:flex}.message-bubble-wrap.mine{align-self:flex-end;align-items:flex-end}.message-bubble{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:.6rem .9rem}.message-bubble.mine{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.message-bubble p{margin:0}.message-time{color:var(--color-muted);margin-top:.25rem;font-size:.7rem;display:block}.message-bubble.mine .message-time{color:#ffffffbf}.message-bubble.deleted{border:1px dashed var(--color-border);background:0 0}.message-bubble.deleted p{margin:0;font-style:italic}.message-edit-form{align-items:center;gap:.3rem;display:flex}.message-edit-form input{min-width:180px}.message-edit-form button{flex-shrink:0;padding:.4rem}.message-seen-receipt{color:var(--color-muted);padding:0 .25rem;font-size:.7rem}.message-bubble-row{align-items:flex-end;gap:.25rem;display:flex}.reaction-add-button{color:var(--color-muted);opacity:.6;background:0 0;border:none;flex-shrink:0;padding:.2rem}.reaction-add-button:hover{opacity:1;color:var(--color-text)}.reaction-add-button .material-symbols-outlined{font-size:1.1rem}.reaction-picker{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;gap:.3rem;padding:.3rem .5rem;display:flex}.reaction-picker button{background:0 0;padding:.1rem .2rem;font-size:1.1rem;line-height:1;transition:transform .1s}.reaction-picker button:hover{transform:scale(1.25)}.reaction-chips{flex-wrap:wrap;gap:.3rem;display:flex}.reaction-chip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .5rem;font-size:.8rem;display:flex}.reaction-chip.mine{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 12%, var(--color-surface))}.typing-bubble{align-items:center;gap:4px;padding:.75rem .9rem;display:flex}.typing-dot{background:var(--color-muted);opacity:.4;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typing-bounce}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.message-compose-wrap{position:relative}.message-compose{border-top:1px solid var(--color-border);gap:.5rem;padding:.75rem 0;display:flex}.message-compose input{flex:1}.message-compose button{width:auto}.mention-suggestions{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;max-height:200px;margin:0 0 .25rem;padding:.3rem;list-style:none;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto}.mention-suggestions button{text-align:left;background:0 0;border-radius:6px;align-items:center;gap:.5rem;width:100%;padding:.4rem .5rem;display:flex}.mention-suggestions button:hover{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.mention{color:var(--color-primary);font-weight:600}.message-bubble.mine .mention{color:var(--color-on-primary);text-decoration:underline}.mention.mine{background:color-mix(in srgb, var(--color-primary) 20%, transparent);border-radius:4px;padding:0 .15rem}
