.auth-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--surface-page);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay)}.auth-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-5);text-align:center;padding:0 var(--space-7)}.auth-loading-debug{font-size:var(--text-sm);color:var(--text-muted);word-break:break-word}.auth-loading-actions{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.auth-loading-actions button{padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-primary);cursor:pointer}.auth-loading-actions button:hover,.auth-loading-actions button:active{background:var(--surface-hover)}.auth-loading-spinner{width:40px;height:40px;border:4px solid var(--border-subtle);border-top:4px solid var(--interactive-primary);border-radius:var(--radius-circle);animation:auth-spin 1s linear infinite}@keyframes auth-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.telegram-auth-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--surface-page)}.auth-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-5);text-align:center}.auth-loading p{margin:0;color:var(--text-secondary);font-size:var(--text-md)}.auth-debug-actions{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.auth-debug-actions button{padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-primary);cursor:pointer}.auth-debug-actions button:hover,.auth-debug-actions button:active{background:var(--surface-hover)}.auth-loading-spinner{width:40px;height:40px;border:4px solid var(--border-subtle);border-top:4px solid var(--interactive-primary);border-radius:var(--radius-circle);animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);background-color:var(--surface-base);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100}.app-title{margin:0;font-size:var(--text-xl);color:var(--text-primary)}.logout-button{padding:var(--space-3) var(--space-5);background-color:transparent;color:var(--interactive-primary);border:1px solid var(--interactive-primary);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;transition:all var(--duration-base)}.logout-button:hover,.logout-button:active{background-color:var(--interactive-primary);color:var(--text-on-accent)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-nav);display:flex;align-items:stretch;justify-content:space-around;min-height:var(--bottom-nav-height);padding-bottom:var(--safe-bottom);background-color:var(--tabbar-bg);border-top:1px solid var(--tabbar-border);box-shadow:var(--shadow-nav)}@supports (-webkit-touch-callout: none){.bottom-nav{min-height:var(--bottom-nav-height-ios)}}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);position:relative;min-height:var(--tap-target-min);padding:var(--space-3) var(--space-2);border:none;background:none;color:var(--tabbar-item);font-family:inherit;font-size:var(--text-2xs);font-weight:var(--weight-medium);line-height:var(--leading-snug);text-align:center;text-decoration:none;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard)}.nav-item-label{overflow-wrap:anywhere}.nav-item:hover,.nav-item:active{color:var(--tabbar-item-active)}.nav-item.active{color:var(--tabbar-item-active);font-weight:var(--weight-semibold)}.nav-item:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px;border-radius:var(--radius-md)}.nav-item-create{flex:0 0 auto;width:48px;height:48px;min-height:48px;align-self:center;justify-content:center;padding:0;margin:0 var(--space-3);border-radius:var(--radius-circle);background-color:var(--tabbar-fab-bg);color:var(--tabbar-fab-text);line-height:1;box-shadow:var(--tabbar-fab-shadow);transition:background-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.nav-item-create:hover{background-color:var(--interactive-primary-hover);color:var(--tabbar-fab-text)}.nav-item-create:active{background-color:var(--interactive-primary-active);transform:scale(var(--press-scale))}.nav-badge{position:absolute;top:var(--space-2);left:50%;margin-left:2px;min-width:16px;height:16px;padding:0 var(--space-2);border-radius:var(--radius-pill);background-color:var(--tabbar-badge-bg);color:var(--tabbar-badge-text);font-size:var(--text-2xs);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:16px;text-align:center}.offline-notice{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background-color:var(--warning-bg);color:var(--warning-text);font-size:var(--text-base);line-height:var(--leading-snug);text-align:center}.toast-container{position:fixed;bottom:calc(80px + var(--safe-bottom));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-4);max-width:90%;width:100%;max-width:400px;padding:0 var(--space-5);pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);background-color:var(--toast-bg);border:1px solid var(--toast-border);border-radius:var(--radius-md);box-shadow:var(--toast-shadow);pointer-events:auto;animation:toastSlideIn var(--duration-slow) var(--ease-decelerate);transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}.toast.toast-success{border-left:3px solid var(--success-solid)}.toast.toast-error{border-left:3px solid var(--danger-solid)}.toast.toast-info{border-left:3px solid var(--info-solid)}.toast.toast-warning{border-left:3px solid var(--warning-solid)}.toast-content{flex:1;min-width:0}.toast-message{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--leading-snug);margin-bottom:var(--space-2)}.toast-description{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-snug)}.toast-close{flex-shrink:0;background:none;border:none;font-size:var(--text-2xl);color:var(--text-secondary);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circle);transition:background-color var(--duration-base),color var(--duration-base);line-height:1;position:relative}.toast-close:hover,.toast-close:active{background-color:var(--surface-hover);color:var(--text-primary)}.toast-close:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.toast-close:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.field-group{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);min-height:var(--button-height-min);border:1px solid var(--border-control);border-radius:var(--radius-control);background-color:var(--surface-raised);transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.field-group:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 1px var(--border-focus)}.field-group--error{border-color:var(--danger-text)}.field-group--error:focus-within{box-shadow:0 0 0 1px var(--danger-text)}.field-group--disabled{background-color:var(--surface-muted);border-color:var(--border-subtle)}.field-label{font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--text-muted);font-weight:var(--weight-regular)}.field-label-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.required{color:var(--danger-text);margin-left:var(--space-2)}.field-input{padding:0;border:none;border-radius:0;font-size:var(--text-md);line-height:var(--leading-normal);font-family:inherit;width:100%;background-color:transparent;color:var(--text-primary)}.field-input:focus{outline:none}.field-input:disabled{color:var(--text-muted);cursor:not-allowed}.field-input::placeholder{color:var(--text-disabled)}.field-textarea{resize:vertical;min-height:80px}.field-hint{font-size:var(--text-xs);color:var(--text-muted);text-align:right}.field-error{font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--danger-text);margin-top:var(--space-2)}.date-input-with-text{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.date-input-row{display:flex;gap:var(--space-3);align-items:center}.date-input-field{position:relative;flex:1 1 auto;min-width:0}.date-input-field .MuiTextField-root{width:100%;min-width:0}.date-input-field .MuiFormHelperText-root{margin-left:0;margin-right:0}.date-input-field .MuiInputBase-root,.date-input-field .react-datepicker-wrapper,.date-input-field .react-datepicker__input-container,.date-input-field .react-datepicker__input-container input{width:100%}.date-input-control{position:relative;display:flex;align-items:center}.date-input-field .react-datepicker-popper{z-index:var(--z-overlay)}.date-picker-popper-portal,.react-datepicker__portal{z-index:10000}.react-datepicker{width:min(320px,90vw);max-width:90vw;box-sizing:border-box}.react-datepicker__month-container{width:100%}.react-datepicker__header{box-sizing:border-box}.date-text-input,.date-picker-input-hidden{padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-md);font-family:inherit;transition:border-color var(--duration-base);box-sizing:border-box;min-height:var(--tap-target-min);background-color:var(--surface-raised);color:var(--text-primary)}.date-text-input:focus{outline:none;border-color:var(--border-focus)}.date-text-input:disabled{background-color:var(--interactive-disabled-bg);color:var(--interactive-disabled-text);cursor:not-allowed}.date-text-input{width:100%;padding-right:calc(var(--tap-target-min) + var(--space-8))}.date-calendar-button{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);width:var(--tap-target-min);height:var(--tap-target-min);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:transparent;border:none;padding:0;cursor:pointer}.date-calendar-icon{width:18px;height:18px;line-height:1}.date-calendar-button:disabled{cursor:not-allowed;color:var(--interactive-disabled-text)}.date-input-field .react-datepicker__close-icon{right:calc(var(--tap-target-min) + var(--space-2))}.date-input-field .react-datepicker__close-icon:after{background-color:transparent;color:var(--text-muted)}.date-picker-input-overlay{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.date-picker-input-overlay:disabled{cursor:not-allowed}.date-input-error{font-size:var(--text-sm);color:var(--danger-text-strong)}.date-picker-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--surface-scrim);z-index:2100;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.date-picker-modal{background-color:var(--surface-overlay);border-radius:var(--radius-xl);width:min(360px,92vw);max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-3)}.date-picker-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle)}.date-picker-modal-title{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.date-picker-modal-close{border:none;background:var(--surface-muted);color:var(--text-secondary);font-size:var(--text-lg);border-radius:var(--radius-circle);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--duration-base);position:relative}.date-picker-modal-close:hover,.date-picker-modal-close:active{background-color:var(--surface-pressed)}.date-picker-modal-content{padding:var(--space-5) var(--space-6) var(--space-6);overflow-y:auto;-webkit-overflow-scrolling:touch}.date-picker-modal-close:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.banner{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-control)}.banner-icon{flex:0 0 auto;margin-top:2px}.banner-body{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.banner-title{margin:0;font-size:var(--text-md);line-height:var(--leading-normal);font-weight:var(--weight-semibold)}.banner-text{margin:0;font-size:var(--text-base);line-height:var(--leading-normal)}.banner--info{background-color:var(--info-bg);color:var(--info-text)}.banner--success{background-color:var(--success-bg);color:var(--success-text)}.banner--danger{background-color:var(--danger-bg);color:var(--danger-text)}.segmented{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-1);background-color:var(--surface-muted);border-radius:var(--radius-control)}.segmented-item{flex:1 1 7ch;min-width:0;overflow-wrap:break-word;min-height:var(--tap-target-min);padding:var(--space-3) var(--space-4);border:none;border-radius:calc(var(--radius-control) - 3px);background:none;font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;transition:background-color var(--duration-slow) var(--ease-standard),color var(--duration-slow) var(--ease-standard)}.segmented-item:hover,.segmented-item:active{color:var(--text-primary)}.segmented-item.is-active{background-color:var(--surface-base);color:var(--text-primary);font-weight:var(--weight-semibold);box-shadow:var(--shadow-1)}.segmented-item:disabled{color:var(--text-disabled);cursor:not-allowed}.segmented-item:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.segmented--scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.segmented--scroll::-webkit-scrollbar{display:none}.segmented--scroll .segmented-item{flex:0 0 auto;white-space:nowrap}.create-activity-header{width:100%}.create-activity-actions{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}.create-activity-intro{margin:0;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-muted)}.create-activity-parsing{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-control)}.create-activity-parsing-title{margin:0 0 var(--space-1);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.create-activity-spinner{flex:0 0 auto;margin-top:2px;color:var(--interactive-primary);animation:ds-spin .9s linear infinite}.create-activity-duplicate,.create-activity-error{display:flex;flex-direction:column;gap:var(--space-3)}.create-activity-error{margin-bottom:var(--space-5)}.create-activity-toggle{display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.create-activity-toggle-button{flex:1;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-base);color:var(--text-secondary);cursor:pointer;font-size:var(--text-base);transition:background-color var(--duration-base),color var(--duration-base),border-color var(--duration-base)}.create-activity-toggle-button.active{background-color:var(--interactive-primary);color:var(--text-on-accent);border-color:var(--interactive-primary)}.create-activity-file-block{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5)}.create-activity-helper{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.create-activity-warning{font-size:var(--text-sm);color:var(--warning-text);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);text-align:center}.stats-container{padding:var(--space-5);max-width:var(--layout-max-width);margin:0 auto;padding-bottom:calc(var(--bottom-nav-height-ios) + var(--safe-bottom));min-height:calc(100vh - var(--safe-top) - var(--safe-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}.stats-empty{color:var(--text-muted);text-align:center;padding:var(--space-4) 0}.error-close{background:none;border:none;color:var(--danger-text);font-size:var(--text-2xl);cursor:pointer;padding:var(--space-3);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;margin-left:var(--space-3);line-height:1;border-radius:var(--radius-circle);transition:background-color var(--duration-fast) var(--ease-standard);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.error-close:active{background-color:var(--danger-soft)}.stats-form{display:flex;flex-direction:column;gap:var(--space-8);margin-bottom:var(--space-8)}.form-section{display:flex;flex-direction:column;gap:var(--space-5)}.form-section h3{margin:0 0 var(--space-3) 0;font-size:var(--text-lg);color:var(--text-secondary)}.section-hint{margin:calc(var(--space-3) * -1) 0 var(--space-3) 0;font-size:var(--text-sm);color:var(--text-muted)}.time-field-group{position:relative}.time-display{margin-top:var(--space-2);padding:var(--space-3);background-color:var(--surface-hover);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--interactive-primary);font-weight:var(--weight-medium);text-align:center}.save-button{margin-top:var(--space-3);padding:var(--space-4);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base)}.achievements-section{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--border-subtle)}.achievements-section h3{margin:0 0 var(--space-5) 0;font-size:var(--text-lg);color:var(--text-secondary)}.prs-list{display:flex;flex-direction:column;gap:var(--space-4)}.pr-item{padding:var(--space-4);background-color:var(--surface-sunken);border-radius:var(--radius-lg);border-left:3px solid var(--chart-series-2);display:flex;flex-direction:column;gap:var(--space-3)}.pr-main{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5)}.pr-distance{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-secondary)}.pr-time{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.pr-meta{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);font-size:var(--text-xs);color:var(--text-muted)}.pr-source{flex:1}.pr-date{flex-shrink:0}.no-prs{text-align:center;color:var(--text-muted);padding:var(--space-8) var(--space-5)}.pr-history-section{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.pr-history-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;color:var(--interactive-primary);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);border-radius:var(--radius-md);-webkit-tap-highlight-color:transparent;touch-action:manipulation;min-height:44px}.pr-history-toggle:active{background-color:var(--accent-soft-alpha)}.pr-history-toggle:disabled{color:var(--interactive-disabled-text);cursor:not-allowed}.pr-history-chevron{font-size:var(--text-xs);color:var(--text-muted);transition:transform var(--duration-base) var(--ease-standard)}.pr-history-content{margin-top:var(--space-3);animation:slideDown var(--duration-base) var(--ease-standard)}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.pr-history-loading{text-align:center;color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-3)}.pr-history-list{display:flex;flex-direction:column;gap:var(--space-3)}.pr-history-item{padding:var(--space-3) var(--space-4);background-color:var(--surface-base);border-radius:var(--radius-md);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-3)}.pr-history-item-main{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5)}.pr-history-item-date{font-size:var(--text-sm);color:var(--text-muted)}.pr-history-item-time{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary)}.pr-history-item-meta{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);font-size:var(--text-xs);color:var(--text-muted)}.pr-history-item-source{flex:1}.pr-history-item-delta{flex-shrink:0;font-weight:var(--weight-medium)}.pr-history-item-delta-positive{color:var(--success-text)}.pr-history-item-delta-negative{color:var(--danger-text-strong)}.pr-history-show-all{margin-top:var(--space-3);text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.no-achievements{text-align:center;color:var(--text-muted);padding:var(--space-8)}.achievements-list{display:flex;flex-direction:column;gap:var(--space-4)}.achievement-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background-color:var(--surface-sunken);border-radius:var(--radius-lg);border-left:3px solid var(--chart-series-3)}.achievement-type{font-weight:var(--weight-medium);color:var(--text-primary)}.achievement-date{font-size:var(--text-sm);color:var(--text-muted)}.stats-section{margin-bottom:var(--space-8)}.stats-section h3{margin:0 0 var(--space-5) 0;font-size:var(--text-lg);color:var(--text-secondary)}.stats-section-collapsible{margin-bottom:var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden}.stats-section-header{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:var(--tap-target-min);padding:var(--space-4) var(--space-5);background:none;border:none;text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);-webkit-tap-highlight-color:transparent;touch-action:manipulation;min-height:44px}.stats-section-header:hover,.stats-section-header:active{background-color:var(--surface-hover)}.stats-section-header h3{margin:0;font-size:var(--text-md);color:var(--text-primary);font-weight:var(--weight-semibold)}.section-chevron{font-size:var(--text-xs);color:var(--text-muted);transition:transform var(--duration-base) var(--ease-standard);flex-shrink:0;margin-left:var(--space-5)}.stats-section-content{padding:0 var(--space-5) var(--space-5) var(--space-5);animation:slideDown var(--duration-base) var(--ease-standard)}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.stat-item{padding:var(--space-4) var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-card)}.stat-label{font-size:var(--text-base);color:var(--text-muted);margin-bottom:var(--space-2)}.stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--text-primary);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.empty-state{max-width:320px;margin:0 auto;text-align:center;color:var(--text-muted);font-size:var(--text-base);padding:var(--space-9) var(--space-5)}.charts-container{display:flex;flex-direction:column;gap:var(--space-7)}.chart-wrapper{display:flex;flex-direction:column;gap:var(--space-4)}.chart-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);flex-wrap:wrap}.chart-header-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.chart-nav{display:flex;gap:var(--space-3)}.chart-nav-button{min-height:var(--tap-target-min);min-width:var(--tap-target-min);padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border-default);background-color:var(--surface-raised);font-family:inherit;font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.chart-nav-button:disabled{color:var(--interactive-disabled-text);cursor:not-allowed;background-color:var(--interactive-disabled-bg)}.chart-title-inline{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-secondary)}.chart-placeholder{padding:var(--space-8);background-color:var(--surface-sunken);border-radius:var(--radius-md);border:1px solid var(--border-subtle);min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.chart-placeholder-title{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-secondary);margin-bottom:var(--space-3)}.chart-placeholder-content{font-size:var(--text-base);color:var(--text-muted)}@media (max-width: 420px){.chart-header{flex-direction:column;align-items:stretch}.chart-title-inline{margin-bottom:var(--space-3)}}.fab{position:fixed;bottom:calc(var(--bottom-nav-height-ios) + var(--safe-bottom) + var(--space-3));right:var(--space-5);width:56px;height:56px;border-radius:var(--radius-circle);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;font-size:var(--text-3xl);font-weight:var(--weight-regular);cursor:pointer;box-shadow:var(--tabbar-fab-shadow);transition:background-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard);z-index:var(--z-sticky);display:flex;align-items:center;justify-content:center;line-height:1}.fab:hover{background-color:var(--interactive-primary-hover)}.fab:active{background-color:var(--interactive-primary-active)}.modal-content{background-color:var(--surface-overlay);border:var(--elevated-border);border-radius:var(--radius-lg);max-width:420px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-3)}.modal-close{background:none;border:none;font-size:var(--text-2xl);color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circle);transition:background-color var(--duration-base) var(--ease-standard);position:relative}.modal-button{min-height:var(--tap-target-min);padding:var(--space-3) var(--space-7);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--duration-base)}.modal-options{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.modal-option{padding:var(--space-5);background-color:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;transition:background-color var(--duration-base);text-align:left}.modal-option:hover,.modal-option:active{background-color:var(--surface-hover)}.stats-map-block{display:flex;flex-direction:column;gap:var(--space-4)}.stats-map-filters,.history-filters{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-5)}.history-search-clear{position:absolute;right:.25rem;top:42%;transform:translateY(-50%);background:none;border:none;font-size:var(--text-xl);color:var(--text-muted);cursor:pointer;padding:0;width:40px;height:48px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color var(--duration-base)}.stats-map-filter{padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background-color:var(--surface-base);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer}.stats-map-filter.active{background-color:var(--interactive-primary);color:var(--text-on-accent);border-color:var(--interactive-primary)}.stats-map-area{position:relative;width:100%;height:min(60vh,640px);min-height:420px;max-height:70vh;overflow:hidden;border-radius:var(--radius-xl);margin:var(--space-5) 0;touch-action:pan-x pan-y}.stats-map-loading-area{background:var(--surface-skeleton);border:1px solid var(--border-subtle)}.stats-map-loading-area:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,var(--interactive-ghost-hover),transparent);animation:stats-map-shimmer 1.4s var(--ease-standard) infinite}.stats-map-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--interactive-primary);font-size:var(--text-base)}.stats-map-spinner{width:28px;height:28px;border-radius:var(--radius-circle);border:3px solid var(--border-ring);border-top-color:var(--interactive-primary);animation:stats-map-spin 1s linear infinite}.stats-map-loading-text{color:var(--text-muted)}.stats-map{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;overflow:hidden}.stats-map.leaflet-container{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;margin:0!important;padding:0!important;border-radius:inherit}.stats-map.leaflet-container .leaflet-map-pane{width:100%!important;height:100%!important}.stats-map-hint{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.stats-track-popup{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary)}.stats-track-popup-title{font-weight:var(--weight-semibold)}.stats-track-popup-date{color:var(--text-muted)}.stats-track-popup-button{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-4);background-color:var(--surface-base);color:var(--interactive-primary);border:1px solid var(--interactive-primary);border-radius:var(--radius-sm);text-decoration:none;font-size:var(--text-sm);font-weight:var(--weight-medium)}.stats-track-popup-button:hover,.stats-track-popup-button:active{background-color:var(--surface-hover)}@media (max-width: 480px){.stats-map-area{height:62vh;min-height:420px;max-height:68vh}}@keyframes stats-map-spin{to{transform:rotate(360deg)}}@keyframes stats-map-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (min-width: 769px){.stats-map-area{height:600px;min-height:600px;max-height:70vh}}.city-autocomplete{position:relative;z-index:1}.city-autocomplete-input{padding:var(--space-4);padding-right:var(--space-9);border:1px solid var(--border-default);background-color:var(--surface-raised);color:var(--text-primary);border-radius:var(--radius-md);font-size:var(--text-md);font-family:inherit;transition:border-color var(--duration-base);width:100%;box-sizing:border-box;min-height:var(--tap-target-min)}.city-autocomplete-input:focus{outline:none;border-color:var(--border-focus)}.city-autocomplete-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:var(--text-2xl);color:var(--text-muted);cursor:pointer;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;transition:color var(--duration-base)}.city-autocomplete-clear:hover:not(:disabled),.city-autocomplete-clear:active:not(:disabled){color:var(--text-secondary)}.city-autocomplete-clear:disabled{color:var(--interactive-disabled-text);cursor:not-allowed}.city-autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface-overlay);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-top:var(--space-2);max-height:min(40vh,280px);overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:1;box-shadow:var(--shadow-3)}.city-autocomplete-dropdown--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--space-2)}.city-autocomplete-item{display:flex;flex-direction:column;width:100%;padding:var(--space-4) var(--space-5);background:none;border:none;text-align:left;cursor:pointer;transition:background-color var(--duration-base);border-bottom:1px solid var(--border-subtle)}.city-autocomplete-item:last-child{border-bottom:none}.city-autocomplete-item:hover,.city-autocomplete-item:active{background-color:var(--surface-hover)}.city-autocomplete-name{font-weight:var(--weight-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.city-autocomplete-region{font-size:var(--text-sm);color:var(--text-muted)}.city-autocomplete-loading{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.city-autocomplete-clear:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.notifications-container{padding:var(--space-5);max-width:var(--layout-max-width);margin:0 auto}.notifications-list{display:flex;flex-direction:column;gap:var(--space-4)}.notification-item{background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-5);transition:background-color var(--duration-base),border-color var(--duration-base)}.notification-item.unread{background-color:var(--surface-hover);border-color:var(--interactive-primary);border-left-width:3px}.notification-item.read{background-color:var(--surface-base);border-color:var(--border-subtle)}.notification-content{display:flex;flex-direction:column;gap:var(--space-3)}.notification-title{margin:0;font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-primary)}.notification-item.unread .notification-title{font-weight:var(--weight-semibold)}.notification-body{margin:0;font-size:var(--text-base);color:var(--text-muted);line-height:1.5}.notification-invite-body{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-base);color:var(--text-muted)}.notification-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2)}.notification-meta-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end}.notification-record-actions{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-end}.notification-invite-meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.notification-invite-event{display:flex;flex-direction:column;gap:var(--space-1);text-align:right}.notification-invite-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.notification-invite-date{font-size:var(--text-sm);color:var(--text-muted)}.notification-source{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3)}.notification-sport-badge{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.2px;background-color:var(--surface-hover);color:var(--text-secondary)}.notification-sport-badge-right{align-self:flex-end}.notification-sport-badge.sport-running{background-color:var(--sport-running-bg);color:var(--sport-running-text)}.notification-sport-badge.sport-cycling{background-color:var(--sport-cycling-bg);color:var(--sport-cycling-text)}.notification-sport-badge.sport-skiing{background-color:var(--sport-skiing-bg);color:var(--sport-skiing-text)}.notification-sport-badge.sport-swimming{background-color:var(--sport-swimming-bg);color:var(--sport-swimming-text)}.notification-date{font-size:var(--text-sm);color:var(--text-muted)}.notification-action-button{min-height:var(--tap-target-min);padding:var(--space-3) var(--space-5);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-control);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);min-width:110px;text-align:center;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard);flex-shrink:0}.notification-action-button.primary{background-color:var(--interactive-primary);color:var(--text-on-accent)}.notification-error{margin:var(--space-3) 0 0;font-size:var(--text-base);line-height:var(--leading-snug);color:var(--danger-text)}.notification-action-button.outline{background-color:var(--surface-base);color:var(--interactive-primary);border:1px solid var(--interactive-primary)}.notification-action-button:hover:not(:disabled),.notification-action-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.notification-action-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.notification-action-button.ghost{background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.notification-action-button.ghost:hover:not(:disabled),.notification-action-button.ghost:active:not(:disabled){background-color:var(--interactive-ghost-hover)}.notification-status-rejected{padding:var(--space-3) var(--space-5);background-color:var(--danger-bg);color:var(--danger-text-strong);border:1px solid var(--danger-border);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:var(--weight-medium);flex-shrink:0}.notification-link{background:transparent;border:none;padding:0;cursor:pointer;font:inherit;color:var(--interactive-primary);font-weight:var(--weight-semibold)}.notification-link{color:var(--interactive-primary);text-decoration:none;font-weight:var(--weight-semibold)}.notification-link:hover,.notification-link:active{text-decoration:underline}.notification-status-added{padding:var(--space-3) var(--space-5);background-color:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:var(--weight-medium);flex-shrink:0}.loading-state,.error-state,.empty-state{text-align:center;padding:var(--space-8);color:var(--text-muted)}.error-state p{margin:0 0 var(--space-5) 0}.retry-button{padding:var(--space-3) var(--space-5);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);transition:background-color var(--duration-base)}.retry-button:hover:not(:disabled),.retry-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.retry-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.profile-faq{display:flex;flex-direction:column;gap:var(--space-7);padding:var(--space-3) 0 var(--space-7)}.faq-section{background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.faq-section-title{margin:0 0 var(--space-4) 0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.faq-section-items{display:flex;flex-direction:column;gap:var(--space-5)}.faq-item{border-top:1px solid var(--border-subtle);padding-top:var(--space-4)}.faq-item:first-child{border-top:none;padding-top:0}.faq-question{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;min-height:var(--tap-target-min);padding:0;border:none;background:none;font:inherit;font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-primary);text-align:left;cursor:pointer}.faq-chevron{flex:0 0 auto;color:var(--text-muted);transition:transform var(--duration-disclosure) ease-in-out}.faq-item.is-open .faq-chevron{transform:rotate(90deg)}.faq-answer-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--duration-disclosure) ease-in-out}.faq-answer-wrap[hidden]{display:grid;grid-template-rows:0fr}.faq-answer-inner{overflow:hidden;min-height:0;padding-top:var(--space-3)}.faq-answer-wrap[hidden] .faq-answer-inner{padding-top:0}.faq-answer{color:var(--text-muted);line-height:1.5}.faq-answer a{color:var(--interactive-primary);text-decoration:none;font-weight:var(--weight-semibold)}.faq-answer a:hover,.faq-answer a:active{text-decoration:underline}.faq-list{margin:0;padding-left:var(--space-5);color:var(--text-muted);line-height:1.5}.faq-list li+li{margin-top:var(--space-3)}.event-rsvp-button{--event-rsvp-color: var(--interactive-primary);--event-rsvp-color-active: var(--interactive-primary-active);--event-rsvp-text: var(--text-on-accent);display:inline-flex;align-items:center;justify-content:center;min-height:var(--button-height-min);font-family:inherit;font-weight:var(--weight-medium);border-radius:var(--radius-control);cursor:pointer;transition:all var(--duration-base) var(--ease-standard);border:none;background-color:var(--surface-muted);color:var(--text-primary);white-space:nowrap}.event-rsvp-button--small{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);min-width:60px}.event-rsvp-button--medium{padding:var(--space-3) var(--space-5);font-size:var(--text-base);min-width:80px}.event-rsvp-button--large{padding:var(--space-4) var(--space-6);font-size:var(--text-md);min-width:100px}.event-rsvp-button:hover:not(:disabled),.event-rsvp-button:active:not(:disabled){background-color:var(--surface-pressed)}.event-rsvp-button--going{background-color:var(--event-rsvp-color);color:var(--event-rsvp-text)}.event-rsvp-button--going:hover:not(:disabled),.event-rsvp-button--going:active:not(:disabled){background-color:var(--event-rsvp-color-active)}.event-rsvp-button--pending{opacity:.6;cursor:wait}.event-rsvp-button:disabled{cursor:not-allowed;background-color:var(--interactive-disabled-bg);color:var(--interactive-disabled-text)}.friends-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:2100}.friends-modal{background:var(--surface-overlay);border:var(--elevated-border);border-radius:var(--radius-lg);padding:var(--space-5);max-width:420px;width:100%;box-shadow:var(--shadow-3);display:flex;flex-direction:column;gap:var(--space-4)}.friends-modal-header{display:flex;align-items:center;justify-content:space-between}.friends-modal-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.friends-modal-close{border:none;background:none;font-size:var(--text-2xl);cursor:pointer;color:var(--text-muted)}.friends-modal-subtitle{font-size:var(--text-sm);color:var(--text-muted)}.friends-modal-list{display:flex;flex-direction:column;gap:var(--space-3)}.friends-modal-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-base);cursor:pointer;text-align:left}.friends-modal-item:hover,.friends-modal-item:active{background-color:var(--surface-hover)}.friends-modal-avatar{width:40px;height:40px;border-radius:var(--radius-circle);overflow:hidden;background-color:var(--avatar-bg);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-semibold)}.friends-modal-avatar img{width:100%;height:100%;object-fit:cover}.friends-modal-info{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.friends-modal-name{font-weight:var(--weight-semibold);color:var(--text-primary)}.friends-modal-nickname{font-size:var(--text-sm);color:var(--text-muted)}.events-container{padding:var(--space-5);max-width:var(--layout-max-width);margin:0 auto;padding-bottom:var(--bottom-nav-height-ios)}.events-header{margin-bottom:var(--space-7)}.events-header h2{margin:0 0 var(--space-3) 0;font-size:var(--text-2xl);color:var(--text-primary)}.events-container .segmented{margin-bottom:var(--space-5)}.events-error{display:flex;flex-direction:column;gap:var(--space-4)}.events-error-retry,.events-error-filters{width:100%;min-height:var(--button-height-min);padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-control);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.events-error-retry{background-color:var(--interactive-primary);color:var(--text-on-accent)}.events-error-retry:hover,.events-error-retry:active{background-color:var(--interactive-primary-hover)}.events-error-filters{background-color:var(--surface-muted);color:var(--text-primary)}.events-error-filters:hover,.events-error-filters:active{background-color:var(--surface-pressed)}.events-total{font-size:var(--text-base);color:var(--text-muted)}.retry-button{min-height:var(--tap-target-min);margin-top:var(--space-5);padding:var(--space-3) var(--space-7);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.retry-button:hover{background-color:var(--interactive-primary-hover)}.retry-button:active{background-color:var(--interactive-primary-active)}.error-message{background-color:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-5);display:flex;justify-content:space-between;align-items:center}.events-list{display:flex;flex-direction:column;gap:var(--space-5);margin-bottom:var(--space-5)}.event-card{background-color:var(--event-card-bg);border:1px solid var(--event-card-border);border-radius:var(--radius-card);padding:var(--space-4);box-shadow:var(--shadow-1);transition:background-color var(--duration-fast) var(--ease-standard)}.event-card:hover,.event-card:active{background-color:var(--event-card-hover-bg)}.event-card--going{border-color:var(--event-card-going-border);background-color:var(--event-card-going-bg)}.event-card-main{display:flex;align-items:flex-start;gap:var(--space-4);width:100%;min-width:0}.event-date-block{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:56px;padding:var(--space-3) var(--space-2);border-radius:var(--radius-control);background-color:var(--surface-muted);color:var(--text-primary)}.event-date-block-day{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.event-date-block-month{font-size:var(--text-2xs);line-height:var(--leading-tight);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.event-card-body{display:flex;flex-direction:column;gap:var(--space-2);flex:1;min-width:0}.event-card-kicker{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--interactive-primary)}.event-card-kicker:empty{display:none}.event-title{margin:0;font-size:var(--text-md);font-weight:var(--weight-medium);line-height:var(--leading-normal);color:var(--text-primary);text-wrap:pretty;overflow-wrap:anywhere}.event-card-meta{font-size:var(--text-base);color:var(--text-muted);line-height:var(--leading-snug);overflow-wrap:anywhere}.event-card-meta:empty{display:none}.event-card-actions{display:flex;gap:var(--space-3)}.event-card-actions>*{flex:1}.event-open-button{min-height:var(--button-height-min);padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-control);background-color:var(--interactive-primary);color:var(--text-on-accent);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.event-open-button:hover,.event-open-button:active{background-color:var(--interactive-primary-hover)}.event-info{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.event-friends-button{border:none;background:none;padding:0;cursor:pointer;text-align:left}.event-friends-text{white-space:nowrap}.event-friend-avatar{width:24px;height:24px;border-radius:var(--radius-circle);overflow:hidden;background-color:var(--avatar-bg);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xs);font-weight:var(--weight-semibold);border:1px solid var(--border-subtle)}.event-friend-avatar+.event-friend-avatar{margin-left:-6px}.events-export{display:flex;justify-content:stretch;margin:0 0 var(--space-5)}.events-export-button{width:100%;height:48px;padding:0 var(--space-5);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-weight:var(--weight-semibold);cursor:pointer}.events-export-button:disabled{background-color:var(--interactive-disabled-bg);border-color:var(--interactive-disabled-bg);color:var(--interactive-disabled-text);cursor:not-allowed}.geocoding-info-banner{margin:var(--space-5);background-color:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);text-align:center}.geocoding-info-banner p{margin:0;font-size:var(--text-base);color:var(--warning-text)}.events-map-stats{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:var(--space-3) 0 var(--space-5);padding:var(--space-4) var(--space-5);background-color:var(--surface-sunken);border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--text-base)}.events-map-stats-item{display:flex;gap:var(--space-3);align-items:baseline}.events-map-stats-item strong{font-weight:var(--weight-semibold);color:var(--text-primary)}.events-search-container{position:relative;flex:1;min-width:0}.events-search-input{width:100%;height:48px;padding:0 var(--space-9) 0 var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--text-secondary);background-color:var(--surface-base);transition:border-color var(--duration-base);line-height:48px;box-sizing:border-box}.events-search-row{display:flex;gap:var(--space-4);align-items:stretch;margin-bottom:var(--space-5)}.events-search-input:focus{outline:none;border-color:var(--interactive-primary)}.events-search-input::placeholder{color:var(--text-muted)}.events-search-clear{position:absolute;right:.25rem;top:42%;transform:translateY(-50%);background:none;border:none;font-size:var(--text-xl);color:var(--text-muted);cursor:pointer;padding:0;width:40px;height:48px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color var(--duration-base)}.events-search-clear:hover,.events-search-clear:active{color:var(--text-secondary)}.events-search-clear:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.menu-rows{display:flex;flex-direction:column;gap:var(--space-3)}.menu-row{display:flex;align-items:center;gap:var(--space-4);width:100%;min-height:var(--button-height-min);padding:var(--space-4) var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-card);font:inherit;text-align:left;text-decoration:none;color:inherit}.menu-row--clickable{cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}.menu-row--clickable:hover,.menu-row--clickable:active{background-color:var(--surface-hover);border-color:var(--border-default)}.menu-row-body{display:flex;flex-direction:column;gap:var(--space-1);flex:1 1 auto;min-width:0}.menu-row-title{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-primary)}.menu-row-note{font-size:var(--text-base);color:var(--text-muted);overflow-wrap:anywhere}.menu-row-icon{flex:0 0 auto;color:var(--text-muted)}.option-cards{display:flex;flex-direction:column;gap:var(--space-3)}.option-card{display:flex;flex-direction:column;gap:var(--space-2);width:100%;min-height:var(--button-height-min);padding:var(--space-4) var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-card);background-color:var(--surface-raised);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}.option-card:hover,.option-card:active{border-color:var(--border-default)}.option-card.is-active{background-color:var(--success-bg);border-color:var(--success-border)}.option-card-head{display:flex;align-items:center;gap:var(--space-3);color:var(--text-primary)}.option-card.is-active .option-card-head{color:var(--success-text)}.option-card-title{font-size:var(--text-md);font-weight:var(--weight-semibold)}.option-card-text{font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-muted)}.upcoming-events-section{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-5)}.upcoming-events-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.upcoming-events-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.upcoming-events-all{border:none;background:none;color:var(--interactive-primary);font-weight:var(--weight-medium);cursor:pointer;padding:0}.upcoming-events-list{display:flex;flex-direction:column;gap:var(--space-4)}.upcoming-events-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);background-color:var(--surface-base);display:flex;flex-direction:column;gap:var(--space-3)}.upcoming-events-card-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.upcoming-events-card-meta{font-size:var(--text-sm);color:var(--text-muted);display:flex;flex-direction:column;gap:var(--space-2)}.upcoming-events-card-actions{display:flex;justify-content:flex-end}.upcoming-events-card-button{border:1px solid var(--border-subtle);background-color:var(--surface-hover);color:var(--text-secondary);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);cursor:pointer;font-size:var(--text-sm)}.upcoming-events-page{padding-bottom:var(--bottom-nav-height-ios)}.upcoming-events-page-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5)}.upcoming-events-page-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.upcoming-events-load-more{margin-top:var(--space-4);padding:var(--space-3) var(--space-5);border:1px solid var(--border-subtle);background-color:var(--surface-base);border-radius:var(--radius-lg);cursor:pointer}.profile-container .segmented{margin-bottom:var(--space-4)}.profile-menu-rows{margin:var(--space-5) 0}.profile-interests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.profile-interest-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--surface-base);font-size:var(--text-base);color:var(--text-secondary)}.field-wrapper{position:relative}.field-group-city{position:relative;z-index:2}.field-group-city .city-clear-button{top:36px}.profile-container{padding:var(--space-4);max-width:560px;margin:0 auto}.profile-view{padding-top:var(--space-3)}.profile-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.profile-top-left{display:flex;align-items:center;gap:var(--space-3)}.profile-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.profile-menu{position:relative}.profile-menu-avatar{position:absolute;right:.5rem;top:.5rem;z-index:2}.profile-view-body{display:flex;flex-direction:column;gap:var(--space-5)}.profile-view-header{display:flex;align-items:center;gap:var(--space-5);justify-content:space-between}.profile-view-identity{display:flex;align-items:center;gap:var(--space-5);min-width:0}.profile-view-avatar{position:relative}.profile-view-avatar .avatar-display{width:72px;height:72px}.profile-view-main{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.profile-view-name{font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);color:var(--text-primary)}.profile-view-nickname{font-size:var(--text-base);color:var(--text-secondary)}.profile-view-city{font-size:var(--text-sm);color:var(--text-muted)}.profile-view-status{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.3}.profile-view-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.profile-view-row{display:flex;flex-direction:column;gap:var(--space-2);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);min-height:64px;text-decoration:none;color:inherit;box-shadow:var(--shadow-1);transition:background-color var(--duration-fast) var(--ease-standard)}.profile-view-row-button:hover,.profile-view-row-button:active,.profile-view-row-accent:hover,.profile-view-row-accent:active{background-color:var(--surface-hover)}.profile-view-row-button{cursor:pointer;text-align:left;border:1px solid var(--border-subtle);background-color:var(--surface-base);transition:border-color var(--duration-base),box-shadow var(--duration-base)}.profile-view-row-button:hover{border-color:var(--border-default);box-shadow:var(--shadow-2)}.profile-view-row-accent{border-color:var(--interactive-primary);box-shadow:0 0 0 1px var(--accent-soft-alpha)}.profile-view-row-accent:hover{box-shadow:0 4px 12px var(--accent-soft-alpha-strong)}.profile-view-label{font-size:var(--text-xs);color:var(--text-muted)}.profile-view-value{font-size:var(--text-base);color:var(--text-primary);word-break:break-word}.profile-view-contact+.profile-view-contact{margin-top:var(--space-2)}.profile-view-contact{color:var(--text-link);text-decoration:none;display:block}.profile-view-contact:hover,.profile-view-contact:active{text-decoration:underline}.profile-menu-button{background:none;border:none;font-size:var(--text-2xl);line-height:1;cursor:pointer;padding:var(--space-2) var(--space-3);color:var(--text-secondary)}.profile-menu-button:hover,.profile-menu-button:active{background-color:var(--surface-hover);border-radius:var(--radius-sm)}.profile-menu-dropdown{position:absolute;right:0;top:calc(100% + 4px);min-width:160px;background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-2);z-index:var(--z-dropdown);padding:var(--space-2)}.profile-menu-item{width:100%;text-align:left;background:none;border:none;min-height:var(--tap-target-min);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:var(--text-base);color:var(--text-primary)}.profile-menu-item:hover,.profile-menu-item:active{background-color:var(--surface-hover)}.error-message{background-color:var(--danger-bg);color:var(--danger-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);display:flex;justify-content:space-between;align-items:center}.success-message{background-color:var(--success-bg);color:var(--success-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);text-align:center}.profile-form{display:flex;flex-direction:column;gap:var(--space-3)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);align-items:start}@media (max-width: var(--layout-max-width)){.form-row{grid-template-columns:1fr}}.save-button{margin-top:var(--space-2);padding:var(--space-3);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base)}.save-button:hover:not(:disabled),.save-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.save-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.avatar-section{margin-bottom:var(--space-5);padding:var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;gap:var(--space-4);position:relative}.profile-view .avatar-section{margin-bottom:0;padding:0;background-color:transparent;border-radius:0}.avatar-display{width:96px;height:96px;border-radius:var(--radius-circle);overflow:hidden;background-color:var(--border-subtle);display:flex;align-items:center;justify-content:center}.avatar-image{width:100%;height:100%;object-fit:cover}.avatar-display{border:1px solid var(--border-subtle)}.avatar-placeholder{color:var(--text-secondary);font-size:var(--text-base);text-align:center;padding:var(--space-5)}.avatar-upload-button{padding:var(--space-3) var(--space-4);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-base);display:inline-block}.avatar-upload-button:hover,.avatar-upload-button:active{background-color:var(--interactive-primary-hover)}.avatar-upload-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.telegram-info{font-size:var(--text-sm);color:var(--text-muted)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-weight:var(--weight-medium);color:var(--text-secondary);font-size:var(--text-base)}.form-input{padding:var(--space-3) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);font-family:inherit;min-height:var(--tap-target-min);background-color:var(--surface-raised);color:var(--text-primary)}.form-input:disabled{background-color:var(--surface-hover);cursor:not-allowed}.date-input-group{display:flex;align-items:center;gap:var(--space-3)}.profile-date-input{flex:1}.age-display{color:var(--text-muted);font-size:var(--text-xs)}.profile-form .date-text-input{padding:var(--space-3) var(--space-3);font-size:var(--text-base)}.profile-form .field-hint{font-size:var(--text-2xs)}.profile-form .field-textarea{min-height:64px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.theme-switch{margin-top:var(--space-5)}.theme-switch-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-4)}.theme-switch-note{margin:var(--space-4) 0 0;font-size:var(--text-base);color:var(--text-muted)}.bottom-sheet-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--sheet-scrim);z-index:var(--z-overlay);display:flex;align-items:flex-end;animation:fadeIn var(--duration-base) var(--ease-standard)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.bottom-sheet{background-color:var(--sheet-bg);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:80vh;display:flex;flex-direction:column;animation:slideUp var(--duration-sheet) var(--ease-decelerate);padding-bottom:calc(var(--safe-bottom) + var(--space-8))}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5);border-bottom:1px solid var(--border-subtle);position:relative}.bottom-sheet-drag-handle{position:absolute;top:.5rem;left:50%;transform:translate(-50%);width:40px;height:4px;background-color:var(--sheet-handle);border-radius:var(--radius-pill)}.bottom-sheet-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);flex:1;text-align:center}.bottom-sheet-close{position:absolute;right:1rem;background:none;border:none;font-size:var(--text-2xl);color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circle);transition:background-color var(--duration-base)}.bottom-sheet-close:hover,.bottom-sheet-close:active{background-color:var(--surface-hover)}.bottom-sheet-content{flex:1;overflow-y:auto;padding:var(--space-5);padding-bottom:calc(var(--space-5) + var(--safe-bottom))}.bottom-sheet-content{-webkit-overflow-scrolling:touch}.bottom-sheet-close:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}@media (prefers-reduced-motion: reduce){.bottom-sheet,.bottom-sheet-overlay{animation:none}}.privacy-container{display:flex;flex-direction:column;gap:var(--space-5)}.privacy-header{display:flex;align-items:center;gap:var(--space-4)}.privacy-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.privacy-save{align-self:stretch}.privacy-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:var(--z-overlay)}.privacy-modal{background:var(--surface-overlay);border:var(--elevated-border);border-radius:var(--radius-lg);padding:var(--space-5);max-width:420px;width:100%;box-shadow:var(--shadow-3);display:flex;flex-direction:column;gap:var(--space-4)}.privacy-modal-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.privacy-modal-text{font-size:var(--text-base);color:var(--text-secondary)}.privacy-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.privacy-modal-button{border:1px solid var(--border-default);background:var(--surface-raised);color:var(--text-primary);min-height:var(--tap-target-min);color:var(--text-secondary);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);cursor:pointer}.privacy-modal-button.primary{border:none;background:var(--interactive-primary);color:var(--text-on-accent)}.privacy-rows{margin-bottom:var(--space-5)}.privacy-picker-note{margin:0;font-size:var(--text-base);color:var(--text-muted)}.privacy-discard{width:100%;min-height:var(--button-height-min);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-control);background-color:var(--surface-muted);color:var(--text-primary);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer}.privacy-discard:hover,.privacy-discard:active{background-color:var(--surface-pressed)}.person-cards{display:flex;flex-direction:column;gap:var(--space-4)}.person-card{display:flex;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-5);min-height:var(--button-height-min);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-card);flex-wrap:wrap;text-align:left;font:inherit}.person-card--clickable{cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}.person-card--clickable:hover,.person-card--clickable:active{background-color:var(--surface-hover);border-color:var(--border-default)}.person-avatar{width:44px;height:44px;border-radius:var(--radius-circle);background-color:var(--avatar-bg);color:var(--avatar-text);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-semibold);flex-shrink:0;overflow:hidden}.person-avatar img{width:100%;height:100%;object-fit:cover}.person-info{min-width:0;display:flex;flex-direction:column;gap:var(--space-1);flex:1 1 auto}.person-name{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-primary)}.person-note{font-size:var(--text-base);color:var(--text-muted)}.person-card-hit{display:flex;align-items:center;gap:var(--space-4);flex:1 1 auto;min-width:0;padding:0;border:none;background:none;font:inherit;text-align:left;cursor:pointer}.person-actions{margin-left:auto;display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3)}.person-card--stacked{flex-direction:column;align-items:stretch;padding:var(--space-5)}.person-card--stacked .person-actions{margin-left:0;flex-direction:column;align-items:stretch}.person-card--stacked .person-actions>*{width:100%}.person-chevron{color:var(--text-muted);flex:0 0 auto}.state-card-group{display:flex;flex-direction:column;gap:var(--space-4)}.state-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-6) var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-card)}.state-card-icon{color:var(--interactive-primary)}.state-card-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-snug);color:var(--text-primary)}.state-card-text{margin:0;font-size:var(--text-md);line-height:var(--leading-normal);color:var(--text-muted)}.state-card-action,.state-card-secondary,.state-card-link{width:100%;min-height:var(--button-height-min);padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-control);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.state-card-action{background-color:var(--interactive-primary);color:var(--text-on-accent)}.state-card-action:hover,.state-card-action:active{background-color:var(--interactive-primary-hover)}.state-card-secondary{background-color:var(--surface-muted);color:var(--text-primary)}.state-card-secondary:hover,.state-card-secondary:active{background-color:var(--surface-pressed)}.state-card-link{background:none;color:var(--text-link);font-weight:var(--weight-semibold)}.state-card-link:hover,.state-card-link:active{color:var(--interactive-primary-hover)}.friends-page{display:flex;flex-direction:column;gap:var(--space-5)}.friends-tabs{margin-bottom:var(--space-2)}.friends-list{display:flex;flex-direction:column;gap:var(--space-5)}.friends-back-row{display:flex;align-items:center}.friends-search-row{display:flex;gap:var(--space-4);align-items:stretch}.friends-search-container{position:relative;flex:1;min-width:0}.friends-search-input{width:100%;height:48px;padding:0 var(--space-9) 0 var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--text-secondary);background-color:var(--surface-base);transition:border-color var(--duration-base);line-height:48px;box-sizing:border-box}.friends-search-input:focus{outline:none;border-color:var(--interactive-primary)}.friends-search-input::placeholder{color:var(--text-muted)}.friends-search-clear{position:absolute;right:.25rem;top:42%;transform:translateY(-50%);background:none;border:none;font-size:var(--text-xl);color:var(--text-muted);cursor:pointer;padding:0;width:40px;height:48px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color var(--duration-base)}.friends-search-clear:hover,.friends-search-clear:active{color:var(--text-secondary)}.load-more-button{padding:var(--space-4) var(--space-8);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base)}.friends-search-clear:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}@media (max-width: 520px){.person-actions{width:100%;margin-left:0;justify-content:flex-start}}.friend-actions{display:flex;gap:var(--space-3);align-items:center}.friend-button{min-height:var(--tap-target-min);padding:var(--space-3) var(--space-4);border:none;background-color:var(--interactive-primary);color:var(--text-on-accent);border-radius:var(--radius-control);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard);white-space:nowrap}.person-card--stacked .friend-button{min-height:var(--button-height-min)}.friend-button:hover:not(:disabled),.friend-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.friend-button:disabled{cursor:not-allowed;background-color:var(--interactive-disabled-bg);border-color:var(--interactive-disabled-bg);color:var(--interactive-disabled-text)}.friend-button-ghost{background-color:var(--surface-muted);color:var(--text-primary)}.friend-button-ghost:hover:not(:disabled),.friend-button-ghost:active:not(:disabled){background-color:var(--surface-pressed)}.friend-button-muted{background-color:var(--surface-hover);color:var(--text-muted)}.friend-badge{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background-color:var(--surface-hover);color:var(--text-muted);font-size:var(--text-xs)}.friend-menu{position:relative;display:inline-flex}.friend-menu-dropdown{position:absolute;right:0;top:calc(100% + 6px);min-width:180px;background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:var(--space-2);z-index:1200}.friend-menu-item{width:100%;text-align:left;background:none;border:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.friend-menu-item:hover:not(:disabled),.friend-menu-item:active:not(:disabled){background-color:var(--surface-hover)}.friend-menu-item:disabled{cursor:not-allowed;color:var(--interactive-disabled-text)}.weekly-mileage-chart{padding:var(--space-5);background-color:var(--surface-raised);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.pace-trend-chart{padding:var(--space-5);background-color:var(--surface-raised);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.distance-distribution-chart{padding:var(--space-5);background-color:var(--surface-raised);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.chart-title{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-primary);margin-bottom:var(--space-3)}.chart-empty-state{padding:var(--space-8);text-align:center;color:var(--text-muted)}.chart-tooltip{background-color:var(--chart-tooltip-bg);border:1px solid var(--chart-tooltip-border);color:var(--chart-tooltip-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;box-shadow:var(--shadow-2)}.chart-tooltip-label{margin:0 0 var(--space-2) 0;font-weight:var(--weight-medium)}.chart-tooltip-value{margin:0;font-weight:var(--weight-semibold)}.events-filters-panel{margin-bottom:var(--space-4);display:inline-flex;flex-shrink:0;align-self:stretch}.events-filters-trigger{position:relative;width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;gap:0;padding:0;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background-color:var(--surface-base);cursor:pointer;text-align:left;transition:border-color var(--duration-base),box-shadow var(--duration-base),transform var(--duration-base)}.events-filters-trigger:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.events-filters-trigger:active{transform:scale(.97)}.events-filters-trigger-icon{width:22px;height:22px;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center}.events-filters-trigger-icon svg{width:22px;height:22px;fill:currentColor}.events-filters-trigger-dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:var(--radius-circle);background:var(--interactive-primary)}.events-filters-overlay{position:fixed;top:0;left:0;right:0;bottom:calc(var(--bottom-nav-height) + var(--safe-bottom));background:var(--surface-scrim);z-index:1100;display:flex;justify-content:flex-start;align-items:stretch;opacity:0;pointer-events:none;transition:opacity var(--duration-sheet) var(--ease-standard)}.events-filters-overlay.is-open{opacity:1;pointer-events:auto}.events-filters-drawer{width:min(420px,92vw);background:var(--surface-base);height:100%;padding:var(--space-6) var(--space-6) var(--space-7);box-shadow:var(--shadow-3);overflow-y:auto;transform:translate(-40px);transition:transform var(--duration-sheet) var(--ease-standard),opacity var(--duration-sheet) var(--ease-standard);opacity:.98;will-change:transform}.events-filters-overlay.is-open .events-filters-drawer{transform:translate(0);opacity:1}.events-filters-overlay.is-closing .events-filters-drawer{transform:translate(-24px);opacity:.98}.events-filters-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-5)}.events-filters-drawer-heading{display:flex;flex-direction:column;gap:var(--space-2)}.events-filters-summary{font-size:var(--text-sm);color:var(--text-muted);font-weight:var(--weight-regular)}.events-filters-close{border:none;background:var(--surface-muted);color:var(--text-secondary);font-size:var(--text-lg);border-radius:var(--radius-circle);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--duration-base);position:relative}.events-filters-close:hover,.events-filters-close:active{background-color:var(--surface-pressed)}.events-filters-content{display:flex;flex-direction:column;gap:var(--space-7)}.filter-group{display:flex;flex-direction:column;gap:var(--space-3)}.filter-group label{font-size:var(--text-xs);color:var(--text-muted);font-weight:var(--weight-regular)}.filter-option{display:flex;align-items:center;gap:var(--space-4);min-height:var(--tap-target-min);padding:0 var(--space-2);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--text-primary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.filter-option:hover,.filter-option:active{background-color:var(--surface-hover)}.filter-option input{width:20px;height:20px;flex-shrink:0;accent-color:var(--interactive-primary)}.filter-tree,.filter-tree-item{display:flex;flex-direction:column;gap:var(--space-3)}.filter-tree-children{display:flex;flex-direction:column;gap:var(--space-3);padding-left:var(--space-7)}.filter-option-nested{font-size:var(--text-base);color:var(--text-muted)}.filter-multiselect{position:relative}.filter-multiselect-trigger{width:100%;text-align:left;padding:var(--space-3) var(--space-4);border:1px solid var(--border-control);border-radius:var(--radius-control);font-size:var(--text-md);font-family:inherit;background:var(--surface-base);cursor:pointer;min-height:var(--button-height-min)}.filter-multiselect-trigger:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 1px var(--border-focus)}.filter-multiselect-menu{position:absolute;top:calc(100% + .25rem);left:0;right:0;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-2);z-index:5;max-height:min(40vh,280px);overflow-y:auto}.filter-group:has(>input[type=text]),.filter-group:has(>input[type=date]),.filter-group:has(>select){gap:var(--space-1);padding:var(--space-3) var(--space-4);min-height:var(--button-height-min);border:1px solid var(--border-control);border-radius:var(--radius-control);background-color:var(--surface-raised);transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.filter-group:has(>input[type=text]):focus-within,.filter-group:has(>input[type=date]):focus-within,.filter-group:has(>select):focus-within{border-color:var(--border-focus);box-shadow:0 0 0 1px var(--border-focus)}.filter-group:has(>input[type=text])>input,.filter-group:has(>input[type=date])>input,.filter-group:has(>select)>select{padding:0;border:none;border-radius:0;min-height:0;background-color:transparent}.filter-group:has(>input[type=text])>input:focus,.filter-group:has(>input[type=date])>input:focus,.filter-group:has(>select)>select:focus{box-shadow:none;border:none}.filter-group input[type=text],.filter-group input[type=date],.filter-group select{padding:var(--space-3) var(--space-4);border:1px solid var(--border-control);border-radius:var(--radius-control);font-size:var(--text-md);font-family:inherit;transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard);width:100%;box-sizing:border-box;min-height:var(--button-height-min);background-color:var(--surface-raised);color:var(--text-primary)}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 1px var(--border-focus)}.distance-range-container{width:100%}.distance-range-inputs{display:flex;flex-direction:column;gap:var(--space-5)}.distance-input-group{display:flex;flex-direction:column;gap:var(--space-3)}.distance-input-group label{font-size:var(--text-sm);color:var(--text-muted);font-weight:var(--weight-regular)}.distance-number-input{padding:var(--space-3) var(--space-4);border:1px solid var(--border-control);border-radius:var(--radius-control);font-size:var(--text-md);font-family:inherit;transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard);width:100%;box-sizing:border-box;min-height:var(--button-height-min);background-color:var(--surface-raised);color:var(--text-primary)}.distance-number-input:focus{outline:none;box-shadow:0 0 0 1px var(--border-focus);border-color:var(--border-focus)}.distance-input-group input[type=range]{width:100%;height:6px;border-radius:var(--radius-xs);background:var(--border-default);outline:none;-webkit-appearance:none}.distance-input-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:var(--radius-circle);background:var(--interactive-primary);cursor:pointer;transition:background var(--duration-base)}.distance-input-group input[type=range]::-webkit-slider-thumb:hover,.distance-input-group input[type=range]::-webkit-slider-thumb:active{background:var(--interactive-primary-hover)}.distance-input-group input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:var(--radius-circle);background:var(--interactive-primary);cursor:pointer;border:none;transition:background var(--duration-base)}.distance-input-group input[type=range]::-moz-range-thumb:hover,.distance-input-group input[type=range]::-moz-range-thumb:active{background:var(--interactive-primary-hover)}.distance-value{font-size:var(--text-base);color:var(--text-muted);text-align:center;padding:var(--space-2) 0}.city-search-container{position:relative;z-index:2}.city-search-container input{padding-right:var(--space-9)}.city-clear-button{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:var(--text-2xl);color:var(--text-muted);cursor:pointer;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;transition:color var(--duration-base)}.city-clear-button:hover,.city-clear-button:active{color:var(--text-muted)}.city-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-top:var(--space-2);max-height:200px;overflow-y:auto;z-index:var(--z-nav);box-shadow:var(--shadow-2)}.city-option{width:100%;padding:var(--space-4);text-align:left;background:none;border:none;border-bottom:1px solid var(--surface-hover);cursor:pointer;font-size:var(--text-md);color:var(--text-secondary);transition:background-color var(--duration-base)}.city-option:last-child{border-bottom:none}.city-option:hover,.city-option:active{background-color:var(--surface-hover)}.city-loading{padding:var(--space-3);text-align:center;color:var(--text-muted);font-size:var(--text-base)}.date-range-inputs{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;width:100%}.date-range-inputs>.date-input-with-text{flex:1 1 0;min-width:0;max-width:calc(50% - .25rem)}.date-range-inputs>.date-input-with-text .MuiInputBase-root{min-width:0}.date-range-separator{flex:0 0 auto}.date-range-separator{color:var(--text-muted);font-weight:var(--weight-medium)}.filter-checkbox-label{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--text-md);color:var(--text-secondary)}.filter-checkbox-label input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--interactive-primary)}.filter-checkbox-label span{-webkit-user-select:none;user-select:none}.events-filters-actions{display:flex;gap:var(--space-4);margin-top:var(--space-3)}.events-filters-apply{min-height:var(--tap-target-min);font-family:inherit;font-weight:var(--weight-semibold);flex:1;padding:var(--space-4) var(--space-7);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base)}.events-filters-apply:hover,.events-filters-apply:active{background-color:var(--interactive-primary-hover)}.events-filters-clear{min-height:var(--tap-target-min);font-family:inherit;font-weight:var(--weight-medium);padding:var(--space-4) var(--space-7);background-color:transparent;color:var(--text-muted);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;transition:all var(--duration-base)}.events-filters-clear:hover,.events-filters-clear:active{background-color:var(--surface-hover);border-color:var(--interactive-disabled-bg)}@media (min-width: 600px){.distance-range-inputs{flex-direction:row;gap:var(--space-7)}.distance-input-group{flex:1}}@keyframes filtersSlideIn{0%{transform:translate(-20px);opacity:.9}to{transform:translate(0);opacity:1}}.events-filters-close:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.history-container{padding:var(--space-5);max-width:var(--layout-max-width);margin:0 auto;padding-bottom:var(--bottom-nav-height-ios)}.history-container-embedded{padding:0;max-width:100%;margin:0}.history-sport-tabs{margin-bottom:var(--space-4)}.history-header{margin-bottom:var(--space-7)}.history-header h2{margin:0;font-size:var(--text-2xl);color:var(--text-primary)}.history-filters{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-5)}.history-search-row{display:flex;gap:var(--space-4);align-items:stretch}.history-search-container{position:relative;flex:1;min-width:0}.history-search-input{width:100%;height:48px;padding:0 var(--space-9) 0 var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--text-secondary);background-color:var(--surface-base);transition:border-color var(--duration-base);line-height:48px;box-sizing:border-box}.history-search-input:focus{outline:none;border-color:var(--interactive-primary)}.history-search-input::placeholder{color:var(--text-muted)}.history-search{width:100%;padding:var(--space-4) var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--text-md)}.history-search-wrapper{position:relative;display:flex;align-items:center}.history-search-wrapper .history-search{padding-right:var(--space-9)}.history-search-clear{position:absolute;right:.25rem;top:42%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:var(--text-xl);cursor:pointer;padding:0;width:40px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circle);line-height:1;transition:color var(--duration-base)}.history-search-clear:hover,.history-search-clear:active{color:var(--text-secondary)}.history-search:focus{outline:none;border-color:var(--interactive-primary)}.history-filter-group{display:flex;flex-wrap:wrap;gap:var(--space-3)}.history-filter-item{display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--surface-hover);border-radius:var(--radius-pill);font-size:var(--text-sm);color:var(--text-secondary)}.history-filter-item input{margin:0}.loading-state{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted)}.success-message{background-color:var(--success-bg);color:var(--success-text);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-5);text-align:center}.history-timeline{display:flex;flex-direction:column;gap:var(--space-5)}.no-events{max-width:320px;margin:0 auto;text-align:center;color:var(--text-muted);font-size:var(--text-base);padding:var(--space-9) var(--space-5)}.history-item{min-height:64px;padding:var(--space-4) var(--space-5);background-color:var(--surface-sunken);border-radius:var(--radius-lg);border-left:3px solid var(--interactive-primary);position:relative;transition:background-color var(--duration-fast) var(--ease-standard)}.history-item-training,.history-item-TRAINING{border-left-color:var(--interactive-primary)}.history-item-record,.history-item-RECORD{border-left-color:var(--chart-series-2)}.history-item-race,.history-item-RACE{border-left-color:var(--chart-series-3)}.history-item-clickable{cursor:pointer}.history-item-clickable:hover,.history-item-clickable:active,.history-item:hover,.history-item:active{background-color:var(--surface-hover)}.history-item-track-badge{position:absolute;top:.75rem;right:.75rem;display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-3);margin-bottom:var(--space-3);border-radius:var(--radius-pill);background-color:var(--info-bg);color:var(--info-text);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.3px}.history-item-buttons{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.history-action-button{padding:var(--space-3) var(--space-4);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;transition:background-color var(--duration-base)}.history-action-button:hover,.history-action-button:active{background-color:var(--surface-hover)}.history-action-button-danger{color:var(--danger-text);border-color:var(--danger-border)}.history-action-button-danger:hover,.history-action-button-danger:active{background-color:var(--danger-bg)}.history-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.history-item-time{font-size:var(--text-sm);color:var(--text-muted)}.history-item-actions,.action-menu{position:relative}.action-button{background:none;border:none;color:var(--text-muted);font-size:var(--text-lg);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background-color var(--duration-base)}.action-button:hover,.action-button:active{background-color:var(--surface-hover)}.action-menu-dropdown{position:absolute;top:100%;right:0;background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-2);min-width:150px;z-index:10;display:none}.action-menu:hover .action-menu-dropdown,.action-menu:active .action-menu-dropdown{display:block}.action-menu-item{display:block;width:100%;padding:var(--space-4) var(--space-5);background:none;border:none;text-align:left;cursor:pointer;color:var(--text-primary);font-size:var(--text-base);transition:background-color var(--duration-base)}.action-menu-item:hover,.action-menu-item:active{background-color:var(--surface-hover)}.action-menu-item-danger{color:var(--danger-text)}.action-menu-item-danger:hover,.action-menu-item-danger:active{background-color:var(--danger-bg)}.history-item-title{font-weight:var(--weight-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.history-item-sport-badge-right{position:absolute;top:.75rem;right:.75rem;display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.2px;background-color:var(--surface-hover);color:var(--text-secondary)}.history-item-sport-badge-right.with-track{top:2.05rem}.history-item-sport-badge-right.sport-running{background-color:var(--sport-running-bg);color:var(--sport-running-text)}.history-item-sport-badge-right.sport-cycling{background-color:var(--sport-cycling-bg);color:var(--sport-cycling-text)}.history-item-sport-badge-right.sport-skiing{background-color:var(--sport-skiing-bg);color:var(--sport-skiing-text)}.history-item-sport-badge-right.sport-swimming{background-color:var(--sport-swimming-bg);color:var(--sport-swimming-text)}.history-item-subtitle{font-size:var(--text-base);color:var(--text-muted);margin-bottom:var(--space-3)}.history-item-details{font-size:var(--text-sm);color:var(--text-muted)}.history-item-note{margin-top:var(--space-3)}.history-detail-button{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;transition:background-color var(--duration-base)}.history-detail-button:hover,.history-detail-button:active{background-color:var(--surface-hover)}.history-detail-row{display:flex;justify-content:space-between;gap:var(--space-5);padding:var(--space-3) 0;border-bottom:1px solid var(--surface-hover)}.history-detail-label{font-size:var(--text-sm);color:var(--text-muted)}.history-detail-value{font-size:var(--text-base);color:var(--text-primary);text-align:right}.history-track-status{margin-top:var(--space-4);padding:var(--space-3);background-color:var(--surface-hover);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-muted)}.history-track-upload{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.history-detail-loading{text-align:center;color:var(--text-muted);font-size:var(--text-base)}.history-detail-error{background-color:var(--danger-bg);color:var(--danger-text);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm)}.history-track-elevation{margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-base)}.history-track-elevation-title{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-3)}.load-more-button{margin-top:var(--space-5);padding:var(--space-4);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;transition:background-color var(--duration-base);width:100%}.load-more-button:hover,.load-more-button:active{background-color:var(--interactive-primary-hover)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--surface-scrim);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);padding:var(--space-5)}.modal-content{background-color:var(--surface-overlay);border:var(--elevated-border);border-radius:var(--radius-card);max-width:420px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-3)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);border-bottom:1px solid var(--border-subtle)}.modal-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;width:var(--tap-target-min);height:var(--tap-target-min);margin:calc(var(--space-3) * -1);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circle);transition:background-color var(--duration-base) var(--ease-standard);position:relative}.modal-close:hover,.modal-close:active{background-color:var(--surface-hover)}.modal-body{padding:var(--space-5)}.modal-footer{padding:var(--space-5);border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.modal-footer>*:last-child{flex:1}.modal-button{min-height:var(--button-height-min);padding:var(--space-3) var(--space-5);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-control);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard)}.modal-button:hover:not(:disabled),.modal-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.modal-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.modal-button-danger{background-color:var(--danger-solid)}.modal-button-danger:hover:not(:disabled),.modal-button-danger:active:not(:disabled){background-color:var(--danger-solid-hover)}.modal-button-secondary{background-color:var(--surface-muted);color:var(--text-primary)}.modal-button-secondary:hover:not(:disabled),.modal-button-secondary:active:not(:disabled){background-color:var(--surface-pressed)}.form-group{position:relative;display:flex;flex-direction:column;gap:var(--space-3)}.form-group label{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-secondary)}.form-input{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-md);transition:border-color var(--duration-base);min-height:var(--tap-target-min);background-color:var(--surface-raised);color:var(--text-primary)}.form-input:focus{outline:none;border-color:var(--interactive-primary)}.city-input-wrapper{position:relative;display:flex;align-items:center}.city-input-wrapper input{width:100%;padding-right:var(--space-8)}.city-clear-button{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:var(--text-2xl);color:var(--text-muted);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circle);transition:background-color var(--duration-base)}.city-clear-button:hover:not(:disabled),.city-clear-button:active:not(:disabled){background-color:var(--surface-hover)}.city-clear-button:disabled{color:var(--interactive-disabled-text);cursor:not-allowed}.city-suggestions{position:absolute;top:100%;left:0;right:0;background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-2);max-height:300px;overflow-y:auto;z-index:var(--z-overlay);margin-top:var(--space-2)}.city-suggestion-item{display:flex;flex-direction:column;width:100%;padding:var(--space-4) var(--space-5);background:none;border:none;text-align:left;cursor:pointer;transition:background-color var(--duration-base);border-bottom:1px solid var(--surface-hover)}.city-suggestion-item:last-child{border-bottom:none}.city-suggestion-item:hover,.city-suggestion-item:active{background-color:var(--surface-hover)}.city-suggestion-name{font-weight:var(--weight-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.city-suggestion-region{font-size:var(--text-sm);color:var(--text-muted)}.history-search-clear:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.modal-close:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.city-clear-button:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.track-map{width:100%;height:100%;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-subtle);position:absolute;top:0;right:0;bottom:0;left:0}.track-map.leaflet-container{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;border-radius:inherit}.track-map-wrapper{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.map-controls{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:var(--space-3);z-index:500;pointer-events:none}.map-control-button{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background-color:var(--surface-raised);color:var(--text-secondary);font-size:var(--text-base);cursor:pointer;box-shadow:var(--shadow-2);padding:0;line-height:1;outline:none;touch-action:manipulation;pointer-events:auto;position:relative}.map-control-icon{display:inline-block;width:16px;height:16px;background-repeat:no-repeat;background-position:center;background-size:16px 16px;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 9l4 4 4-4'/%3E%3Cpath d='M5 14h14'/%3E%3Cpath d='M4 17h16'/%3E%3Cpath d='M12 4l2 3h-4l2-3z'/%3E%3C/svg%3E")}.map-control-button.active .map-control-icon{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 9l4 4 4-4'/%3E%3Cpath d='M5 14h14'/%3E%3Cpath d='M4 17h16'/%3E%3Cpath d='M12 4l2 3h-4l2-3z'/%3E%3C/svg%3E")}.map-control-button-deselect{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--danger-solid);line-height:1}.map-control-button-deselect:hover,.map-control-button-deselect:active{background-color:var(--danger-bg);color:var(--danger-text-strong)}.map-debug-info{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--space-2);background-color:var(--surface-inverse);color:var(--text-on-inverse);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:Courier New,monospace;z-index:var(--z-nav);pointer-events:none;line-height:1.4}.map-debug-zoom,.map-debug-tracks{white-space:nowrap}.track-sheet{position:absolute;left:0;right:0;bottom:0;height:36%;min-height:140px;max-height:260px;background:var(--sheet-bg);border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:var(--shadow-3);border-top:1px solid var(--border-subtle);padding:var(--space-4) var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);z-index:600;pointer-events:auto;animation:trackSheetUp var(--duration-base) var(--ease-decelerate);overflow:hidden}.track-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.track-sheet-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:1.2}.track-sheet-close{border:none;background:var(--surface-hover);color:var(--text-secondary);width:28px;height:28px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.track-sheet-meta{display:grid;gap:var(--space-3)}.track-sheet-row{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-base)}.track-sheet-label{color:var(--text-muted)}.track-sheet-value{color:var(--text-primary);font-weight:var(--weight-medium)}.track-sheet-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.track-sheet-tile{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.track-sheet-tile-label{font-size:var(--text-2xs);color:var(--text-muted)}.track-sheet-tile-value{font-size:var(--text-xs);color:var(--text-primary);font-weight:var(--weight-semibold);line-height:1.2;word-break:break-word}@media (max-width: 420px){.track-sheet-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.track-sheet{height:42%;min-height:190px}}@media (max-width: 360px){.track-sheet-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.track-sheet{height:46%;min-height:210px}}.track-sheet-button{margin-top:var(--space-1);display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--interactive-primary);color:var(--text-on-accent);text-decoration:none;font-size:var(--text-sm);font-weight:var(--weight-semibold)}.track-sheet-button:active{transform:translateY(1px)}@keyframes trackSheetUp{0%{transform:translateY(15px);opacity:.9}to{transform:translateY(0);opacity:1}}.track-sheet-close:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.rating-container{padding:var(--space-5);max-width:var(--layout-max-width);margin:0 auto;padding-bottom:var(--bottom-nav-height-ios)}.rating-container-embedded{padding:0;max-width:100%;margin:0}.rating-header{margin-bottom:var(--space-7)}.rating-header h2{margin:0 0 var(--space-2) 0;font-size:var(--text-2xl);color:var(--text-primary)}.rating-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-3)}.rating-total{font-size:var(--text-base);color:var(--text-muted)}.retry-button{margin-top:var(--space-5);padding:var(--space-4) var(--space-7);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;transition:background-color var(--duration-base)}.retry-button:hover,.retry-button:active{background-color:var(--interactive-primary-hover)}.error-message{background-color:var(--danger-bg);color:var(--danger-text);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-5);display:flex;justify-content:space-between;align-items:center}.error-close{background:none;border:none;color:var(--danger-text);font-size:var(--text-2xl);cursor:pointer;padding:0;margin-left:var(--space-3);line-height:1}.empty-state{text-align:center;color:var(--text-muted);padding:var(--space-10) var(--space-5)}.rating-list{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-5)}.rating-card{display:flex;align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-4) var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.rating-card-clickable{cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.rating-card-clickable:hover,.rating-card-clickable:active{background-color:var(--surface-hover);border-color:var(--border-default)}.rating-rank{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:var(--interactive-primary);color:var(--text-on-accent);border-radius:var(--radius-circle);font-weight:var(--weight-semibold);font-size:var(--text-base);font-variant-numeric:tabular-nums}.rating-avatar{width:48px;height:48px;border-radius:var(--radius-circle);background-color:var(--avatar-bg);color:var(--avatar-text);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-semibold);flex-shrink:0;overflow:hidden}.rating-avatar img{width:100%;height:100%;object-fit:cover}.rating-info{min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.rating-name{font-weight:var(--weight-medium);font-size:var(--text-md);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rating-nickname,.rating-city{font-size:var(--text-sm);color:var(--text-muted)}.rating-distance{margin-left:auto;text-align:right;display:flex;flex-direction:column;gap:var(--space-1);white-space:nowrap}.rating-distance-value{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.rating-distance-label{font-size:var(--text-xs);color:var(--text-muted)}.loading-more{text-align:center;padding:var(--space-5);color:var(--text-muted)}.load-more-container{display:flex;justify-content:center;padding:var(--space-5) 0}.load-more-button{min-height:var(--tap-target-min);padding:var(--space-3) var(--space-8);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.load-more-button:hover:not(:disabled),.load-more-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.load-more-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.no-more{text-align:center;padding:var(--space-5);color:var(--text-muted);font-size:var(--text-base)}.people-list{display:flex;flex-direction:column;gap:var(--space-5)}.events-pagination{display:flex;flex-direction:column;gap:var(--space-3);align-items:center;padding:var(--space-4) 0}.events-pagination-info{color:var(--text-muted);font-size:var(--text-base)}.events-pagination-controls{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:center}.events-pagination-button{border:1px solid var(--border-subtle);background:var(--surface-base);color:var(--text-primary);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);cursor:pointer;font-size:var(--text-base)}.events-pagination-button.active{background:var(--interactive-primary);color:var(--text-on-accent);border-color:var(--interactive-primary)}.events-pagination-button:disabled{background-color:var(--interactive-disabled-bg);border-color:var(--interactive-disabled-bg);color:var(--interactive-disabled-text);cursor:not-allowed}.events-pagination-ellipsis{color:var(--text-muted);padding:0 var(--space-2)}.community-container{padding:var(--space-5);max-width:var(--layout-max-width);margin:0 auto;padding-bottom:var(--bottom-nav-height-ios)}.community-panel{display:none;flex-direction:column;gap:var(--space-5)}.community-panel.is-active{display:flex}.community-search-row{display:flex;gap:var(--space-4);align-items:stretch}.community-search-container{position:relative;flex:1;min-width:0}.community-search-input{width:100%;height:48px;padding:0 var(--space-9) 0 var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--text-secondary);background-color:var(--surface-base);transition:border-color var(--duration-base);line-height:48px;box-sizing:border-box}.community-search-input:focus{outline:none;border-color:var(--interactive-primary)}.community-search-input::placeholder{color:var(--text-muted)}.community-search-clear{position:absolute;right:.25rem;top:42%;transform:translateY(-50%);background:none;border:none;font-size:var(--text-xl);color:var(--text-muted);cursor:pointer;padding:0;width:40px;height:48px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color var(--duration-base)}.community-search-clear:hover,.community-search-clear:active{color:var(--text-secondary)}.community-share{position:relative}.community-share-trigger{width:48px;height:48px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background-color:var(--surface-base);color:var(--interactive-primary);font-size:var(--text-2xl);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color var(--duration-base),background-color var(--duration-base),color var(--duration-base);padding:0}.community-share-trigger:hover{border-color:var(--interactive-primary);background-color:var(--surface-pressed)}.community-share-trigger:active{background-color:var(--surface-hover)}.community-share-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.community-share-menu{position:absolute;top:calc(100% + 6px);right:0;background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);min-width:190px;display:flex;flex-direction:column;padding:var(--space-3) 0;z-index:20}.community-share-item{padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--text-secondary);background:none;border:none;text-align:left;font-size:var(--text-sm);cursor:pointer}.community-share-item:hover,.community-share-item:active{background-color:var(--surface-hover)}.community-share-button{width:100%}.community-search-clear:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.community-tabs{margin-bottom:var(--space-5)}.public-profile-tabs{margin-bottom:var(--space-4)}.public-profile-panel{padding-top:var(--space-2)}.stats-sport-tabs{margin:var(--space-3) 0 var(--space-5)}.public-stats-activity{display:flex;flex-direction:column;gap:0}.public-profile-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.public-profile-actions{display:flex;justify-content:flex-end}.friend-menu-dots{position:relative}.friend-menu-dots-button{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-base);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-lg);position:relative}.public-profile-friend-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background-color:var(--surface-hover);color:var(--text-muted);font-size:var(--text-2xs);line-height:1;align-self:flex-start}.public-activity{display:flex;flex-direction:column;gap:var(--space-5)}.public-activity-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-4)}.public-activity-kpi-item{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background-color:var(--surface-base)}.public-activity-form{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background-color:var(--surface-base);display:grid;gap:var(--space-3)}.public-profile-map{height:320px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-subtle)}.public-profile-sections{display:flex;flex-direction:column;gap:var(--space-3)}.public-profile-section{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);color:var(--text-muted);font-size:var(--text-base);background-color:var(--surface-sunken)}.friend-menu-dots-button:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.events-map-container{position:relative;width:100%;height:100%}.events-map-area{position:relative;width:100%;height:min(60vh,640px);min-height:420px;max-height:70vh;overflow:hidden;border-radius:var(--radius-xl);margin:var(--space-5) 0;touch-action:none;overscroll-behavior:contain}.events-map{position:relative;z-index:1;width:100%;height:100%}.map-controls{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:var(--space-3);z-index:700;pointer-events:auto}.map-control-button{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background-color:var(--surface-raised);color:var(--text-secondary);font-size:var(--text-base);cursor:pointer;box-shadow:var(--shadow-2);padding:0;line-height:1;outline:none;touch-action:manipulation;position:relative}.map-control-button:hover,.map-control-button:active{background-color:var(--surface-hover)}.map-control-button.active{background-color:var(--interactive-primary);color:var(--text-on-accent);border-color:var(--interactive-primary)}.map-control-icon{display:inline-block;width:16px;height:16px;background-repeat:no-repeat;background-position:center;background-size:16px 16px;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 9l4 4 4-4'/%3E%3Cpath d='M5 14h14'/%3E%3Cpath d='M4 17h16'/%3E%3Cpath d='M12 4l2 3h-4l2-3z'/%3E%3C/svg%3E")}.map-control-button.active .map-control-icon{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 9l4 4 4-4'/%3E%3Cpath d='M5 14h14'/%3E%3Cpath d='M4 17h16'/%3E%3Cpath d='M12 4l2 3h-4l2-3z'/%3E%3C/svg%3E")}.map-control-icon--locate{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3'/%3E%3Cpath d='M12 8l0 0'/%3E%3C/svg%3E")}.map-control-button.active .map-control-icon--locate{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3'/%3E%3Cpath d='M12 8l0 0'/%3E%3C/svg%3E")}.map-control-icon--locate.is-locating{animation:mapLocatePulse 1.2s var(--ease-standard) infinite}.map-geo-error{position:absolute;left:12px;top:86px;max-width:240px;padding:var(--space-3) var(--space-4);background:var(--surface-inverse);color:var(--text-on-inverse);border-radius:var(--radius-md);font-size:var(--text-xs);z-index:700}@keyframes mapLocatePulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.leaflet-container{z-index:1!important;position:relative!important;touch-action:none!important}.leaflet-control-attribution{display:none!important}.event-marker{background:transparent!important;border:none!important;width:20px!important;height:20px!important;display:block!important;position:relative!important}.leaflet-marker-icon.event-marker{width:20px!important;height:20px!important;z-index:var(--z-nav)!important;position:relative!important;display:block!important}.event-marker .marker-pin,.marker-pin{width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;border-radius:var(--radius-pill)!important;background:var(--map-marker-fill)!important;border:2px solid var(--map-marker-stroke)!important;box-shadow:var(--shadow-2)!important;display:block!important;position:relative!important;margin:0 auto!important;margin-top:var(--space-1)!important;flex-shrink:0!important;box-sizing:border-box!important;transition:transform var(--duration-base) var(--ease-standard),background-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.event-marker.size-md,.leaflet-marker-icon.event-marker.size-md{width:22px!important;height:22px!important}.event-marker.size-md .marker-pin{width:16px!important;height:16px!important;margin-top:var(--space-1)!important}.event-marker.size-lg,.leaflet-marker-icon.event-marker.size-lg{width:26px!important;height:26px!important}.event-marker.size-lg .marker-pin{width:18px!important;height:18px!important;margin-top:var(--space-2)!important}.event-marker.size-xl,.leaflet-marker-icon.event-marker.size-xl{width:30px!important;height:30px!important}.event-marker.size-xl .marker-pin{width:20px!important;height:20px!important;margin-top:var(--space-2)!important}.leaflet-marker-icon.event-marker.is-selected .marker-pin{transform:scale(1.2);background:var(--map-track-selected)!important;box-shadow:0 0 0 4px var(--border-ring),var(--shadow-2)!important}.leaflet-marker-icon.event-marker.is-selected{filter:drop-shadow(0 4px 10px var(--shadow-color-strong))}.leaflet-marker-icon.event-marker.is-going .marker-pin{background:var(--success-solid)!important;box-shadow:0 0 0 4px var(--success-ring),var(--shadow-2)!important;border-color:var(--map-marker-stroke)!important}.event-popup{font-size:var(--text-base);text-align:center}.events-no-coords-panel{position:absolute;left:0;right:0;bottom:0;z-index:800;background-color:var(--sheet-bg);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-3);max-height:40vh;overflow:hidden;display:flex;flex-direction:column;pointer-events:auto}.no-coords-toggle{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);background:none;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-secondary);width:100%;text-align:left}.no-coords-toggle:hover,.no-coords-toggle:active{background-color:var(--surface-hover)}.toggle-icon{font-size:var(--text-xs);color:var(--text-muted)}.no-coords-list{max-height:calc(40vh - 50px);overflow-y:auto;padding:var(--space-3) 0}.no-coords-item{display:block;width:100%;padding:var(--space-4) var(--space-5);background:none;border:none;border-bottom:1px solid var(--border-subtle);text-align:left;cursor:pointer;transition:background-color var(--duration-base)}.no-coords-item:hover,.no-coords-item:active{background-color:var(--surface-hover)}.no-coords-item:last-child{border-bottom:none}.no-coords-item-title{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.no-coords-item-meta{font-size:var(--text-xs);color:var(--text-muted);display:flex;gap:var(--space-3)}.event-preview-sheet{position:absolute;bottom:0;left:0;right:0;z-index:850;background-color:var(--sheet-bg);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-3);max-height:calc(100% - 16px);min-height:45%;display:flex;flex-direction:column;padding-bottom:calc(var(--bottom-nav-height-ios) + var(--safe-bottom));animation:slideUp var(--duration-slow) var(--ease-decelerate);pointer-events:auto;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.event-preview-header{padding:var(--space-5);border-bottom:1px solid var(--border-subtle)}.event-preview-header>.event-preview-title-wrapper{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-3)}.event-preview-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);flex:1;padding-right:var(--space-5)}.event-preview-header-badges{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-2);align-items:center;justify-content:flex-end;overflow-x:auto;scrollbar-width:none}.event-preview-header-badges:after{content:"";flex-basis:100%;order:1}.event-preview-header-badges:before{content:"";flex-basis:100%;order:3}.event-preview-source{order:0;font-size:var(--text-2xs);color:var(--text-muted);background-color:var(--surface-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);white-space:nowrap}.event-preview-sport-badge{order:2;font-size:var(--text-2xs);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);white-space:nowrap;font-weight:var(--weight-medium)}.event-preview-subtype-badge{order:4;font-size:var(--text-2xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);white-space:nowrap;font-weight:var(--weight-medium)}.event-preview-close{background:none;border:none;font-size:var(--text-2xl);color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circle);transition:background-color var(--duration-base);position:relative}.event-preview-close:hover,.event-preview-close:active{background-color:var(--surface-hover)}.event-preview-content{padding:var(--space-5);overflow-y:auto;flex:1}.event-preview-row{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5)}.event-preview-row:last-child{margin-bottom:0}.event-preview-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted)}.event-preview-value{font-size:var(--text-md);color:var(--text-primary)}.event-preview-distances{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.event-preview-distance{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);background-color:var(--info-bg);color:var(--info-text);border-radius:var(--radius-pill);font-weight:var(--weight-medium)}.event-preview-actions{padding:var(--space-5);border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-3);flex-direction:column}.event-preview-button{width:100%;padding:var(--space-4);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base)}.event-preview-button:hover:not(:disabled),.event-preview-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.event-preview-button:disabled{background-color:var(--interactive-disabled-bg);color:var(--interactive-disabled-text);cursor:not-allowed}.map-empty-state{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:900;background-color:var(--surface-raised);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);box-shadow:var(--shadow-2);text-align:center;max-width:calc(100% - 16px);pointer-events:none}.map-empty-state p{margin:0;font-size:var(--text-base);color:var(--text-muted);pointer-events:auto}.map-no-coords-message{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:900;background-color:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-2);max-width:calc(100% - 16px);pointer-events:none}.map-no-coords-message p{margin:0 0 var(--space-3) 0;font-size:var(--text-base);color:var(--warning-text);font-weight:var(--weight-medium);pointer-events:auto}.map-no-coords-message p:last-child{margin-bottom:0}.map-no-coords-subtitle{font-size:var(--text-sm)!important;font-weight:var(--weight-regular)!important;color:var(--warning-text)!important}.map-overlays{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:800}.map-overlays.hidden{display:none}.map-overlays>*{pointer-events:auto}@media (max-width: 480px){.events-map-area{height:62vh;min-height:420px;max-height:68vh}.event-preview-sheet{max-height:calc(100% - 8px);min-height:55%}.map-no-coords-message{left:10px;right:10px;font-size:var(--text-sm)}}@media (min-width: 769px){.events-map-area{height:600px;min-height:600px;max-height:70vh}}.map-control-button:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.event-preview-close:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.events-calendar-view{padding:var(--space-4) var(--space-4) var(--space-5);overflow-x:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-7);padding:var(--space-3) 0}.calendar-nav-button{background:none;border:none;font-size:var(--text-2xl);color:var(--interactive-primary);cursor:pointer;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);transition:background-color var(--duration-base);font-weight:var(--weight-semibold)}.calendar-nav-button:hover,.calendar-nav-button:active{background-color:var(--surface-hover)}.calendar-month-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.calendar-loading,.calendar-error{text-align:center;padding:var(--space-8);color:var(--text-muted)}.calendar-error{color:var(--danger-text);display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.calendar-month{padding:var(--space-4);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-card)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-3);width:100%;box-sizing:border-box}.calendar-weekday{text-align:center;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-muted);padding:var(--space-3) 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1);width:100%;box-sizing:border-box}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-target-min);padding:var(--space-2) 0;border:none;background:none;cursor:pointer;font-family:inherit;transition:background-color var(--duration-fast) var(--ease-standard);border-radius:var(--radius-md)}.calendar-day:disabled{cursor:default}.calendar-day:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.calendar-day-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-control);font-size:var(--text-base);font-variant-numeric:tabular-nums;color:var(--text-primary);transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.calendar-day:hover:not(:disabled) .calendar-day-number,.calendar-day:active:not(:disabled) .calendar-day-number{background-color:var(--surface-hover)}.calendar-day.other-month .calendar-day-number{color:var(--text-disabled)}.calendar-day--past .calendar-day-number{color:var(--text-muted)}.calendar-day.today .calendar-day-number{box-shadow:inset 0 0 0 2px var(--interactive-primary);color:var(--interactive-primary);font-weight:var(--weight-semibold)}.calendar-day.selected .calendar-day-number{background-color:var(--interactive-primary);color:var(--text-on-accent);font-weight:var(--weight-semibold);box-shadow:none}.calendar-day-dots{display:flex;align-items:center;justify-content:center;gap:var(--space-1);height:5px}.calendar-day-dot{width:5px;height:5px;border-radius:var(--radius-circle);background-color:var(--success-solid)}.calendar-day-dot--going{background-color:var(--interactive-primary)}.calendar-legend{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-5);margin-top:var(--space-5);font-size:var(--text-xs);color:var(--text-muted)}.calendar-legend-item{display:flex;align-items:center;gap:var(--space-3)}.calendar-legend-marker{width:8px;height:8px;border-radius:var(--radius-circle);background-color:var(--success-solid)}.calendar-legend-marker--going{background-color:var(--interactive-primary)}.calendar-legend-marker--today{width:14px;height:14px;background:none;box-shadow:inset 0 0 0 2px var(--interactive-primary)}.calendar-day-empty{text-align:center;padding:var(--space-9) var(--space-5);color:var(--text-muted)}@media (max-width: var(--layout-max-width)){.events-calendar-view{padding:var(--space-3) var(--space-3) var(--space-4)}}.calendar-day-events{display:flex;flex-direction:column;gap:var(--space-5)}.skeleton-list{display:flex;flex-direction:column;gap:var(--space-4)}.skeleton-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-card)}.skeleton-line{display:block;height:12px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--surface-skeleton) 25%,var(--surface-muted) 37%,var(--surface-skeleton) 63%);background-size:400% 100%;animation:ds-shimmer 1.4s ease-in-out infinite}.skeleton-line--short{width:45%}.skeleton-line--medium{width:70%}.skeleton-label{margin:0;font-size:var(--text-base);color:var(--text-muted)}.html-content{position:relative}.html-content-inner{overflow:hidden;transition:max-height var(--duration-slow) var(--ease-standard)}.html-content-inner.expanded{max-height:none!important}.html-content-toggle{margin-top:var(--space-4);padding:var(--space-3) var(--space-5);background:none;border:1px solid var(--interactive-primary);color:var(--interactive-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);transition:all var(--duration-base)}.html-content-toggle:hover,.html-content-toggle:active{background-color:var(--accent-soft-alpha)}.html-content-inner :global(p){margin:var(--space-3) 0;line-height:1.6}.html-content-inner :global(a){color:var(--text-link);text-decoration:none}.html-content-inner :global(a:hover),.html-content-inner :global(a:active){text-decoration:underline}.html-content-inner :global(ul),.html-content-inner :global(ol){margin:var(--space-3) 0;padding-left:var(--space-7)}.html-content-inner :global(li){margin:var(--space-2) 0;line-height:1.6}.html-content-inner :global(h1),.html-content-inner :global(h2),.html-content-inner :global(h3),.html-content-inner :global(h4){margin:var(--space-5) 0 var(--space-3) 0;font-weight:var(--weight-semibold)}.html-content-inner :global(img){max-width:100%;width:100%;height:auto;display:block;border-radius:var(--radius-md);margin:var(--space-3) 0;object-fit:contain}.html-content-inner :global(p img){max-width:100%;width:100%;height:auto;display:block;margin:var(--space-3) auto}.html-content-inner :global(strong){font-weight:var(--weight-semibold)}.invite-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--surface-scrim);display:flex;align-items:center;justify-content:center;z-index:3000;padding:var(--space-5)}.invite-modal{background-color:var(--surface-overlay);border:var(--elevated-border);border-radius:var(--radius-lg);width:min(520px,100%);max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-3);padding:var(--space-5)}.invite-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.invite-modal-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.invite-modal-close{border:none;background:none;font-size:var(--text-2xl);cursor:pointer;color:var(--text-muted)}.invite-modal-subtitle{margin-top:var(--space-3);font-size:var(--text-base);color:var(--text-muted)}.invite-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4)}.invite-modal-select{border:1px solid var(--border-default);background:var(--surface-raised);color:var(--text-primary);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;min-height:var(--tap-target-min)}.invite-modal-count{font-size:var(--text-sm);color:var(--text-muted)}.invite-modal-state{padding:var(--space-5) 0;text-align:center;color:var(--text-muted)}.invite-modal-error{color:var(--danger-text)}.invite-modal-list{margin-top:var(--space-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding-right:var(--space-2)}.invite-modal-empty{text-align:center;color:var(--text-muted);padding:var(--space-5) 0}.invite-modal-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-raised);min-height:var(--tap-target-min);cursor:pointer}.invite-modal-item:hover,.invite-modal-item:active{background:var(--surface-hover)}.invite-modal-item-disabled{color:var(--interactive-disabled-text);cursor:not-allowed}.invite-modal-item-disabled:hover,.invite-modal-item-disabled:active{background:var(--surface-raised)}.invite-modal-checkbox{width:20px;height:20px;flex-shrink:0;accent-color:var(--interactive-primary)}.invite-modal-avatar{width:36px;height:36px;border-radius:var(--radius-circle);background-color:var(--avatar-bg);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-semibold);overflow:hidden;flex-shrink:0}.invite-modal-avatar img{width:100%;height:100%;object-fit:cover}.invite-modal-info{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.invite-modal-name{font-weight:var(--weight-medium);color:var(--text-primary)}.invite-modal-nickname{font-size:var(--text-sm);color:var(--text-muted)}.invite-modal-hint{font-size:var(--text-xs);color:var(--text-muted)}.invite-modal-more{display:flex;justify-content:center;padding:var(--space-3) 0}.invite-modal-more-button{border:none;background:none;color:var(--interactive-primary);cursor:pointer;font-weight:var(--weight-medium)}.invite-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}.invite-modal-cancel{border:1px solid var(--interactive-primary);background:var(--interactive-secondary-bg);color:var(--interactive-primary);min-height:var(--tap-target-min);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-family:inherit;font-weight:var(--weight-semibold);cursor:pointer}.invite-modal-submit{border:none;background:var(--interactive-primary);color:var(--text-on-accent);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);cursor:pointer}.invite-modal-submit:disabled,.invite-modal-cancel:disabled,.invite-modal-select:disabled,.invite-modal-more-button:disabled{background-color:var(--interactive-disabled-bg);border-color:var(--interactive-disabled-bg);color:var(--interactive-disabled-text);cursor:not-allowed}.event-detail-container{padding:var(--space-5);max-width:var(--layout-max-width);margin:0 auto;padding-bottom:var(--bottom-nav-height-ios)}.event-detail-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;text-align:center;color:var(--text-muted)}.error-state{color:var(--danger-text)}.back-button{margin-top:var(--space-5)}.event-detail{display:flex;flex-direction:column;gap:var(--space-5)}.event-hero{background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.event-hero-kicker{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--interactive-primary)}.event-hero-kicker:empty{display:none}.event-hero h1{margin:0;font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-snug);text-wrap:pretty;color:var(--text-primary)}.event-hero-meta{font-size:var(--text-base);color:var(--text-muted)}.event-hero-meta:empty{display:none}.event-hero-source{align-self:flex-start;padding:var(--space-1) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);font-size:var(--text-2xs);color:var(--text-muted)}.event-image-container{margin-bottom:var(--space-7);border-radius:var(--radius-md);overflow:hidden}.event-image{width:100%;height:auto;display:block;object-fit:cover}.event-detail-info{display:flex;flex-direction:column;gap:var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-5)}.info-row{display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:var(--space-3) var(--space-4)}.info-label{font-weight:var(--weight-medium);color:var(--text-muted);min-width:108px}.info-value{color:var(--text-primary);flex:1;min-width:0}.distances-list{display:flex;flex-wrap:wrap;gap:var(--space-3)}.distance-badge{font-size:var(--text-base);padding:var(--space-3) var(--space-4);background-color:var(--interactive-primary-soft);color:var(--interactive-primary);border-radius:var(--radius-xs);font-weight:var(--weight-medium)}.distance-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background-color:var(--surface-sunken);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.distance-name{font-size:var(--text-sm);color:var(--text-muted)}.distance-price{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--weight-medium)}.contacts-list{display:flex;flex-direction:column;gap:var(--space-3)}.contact-item{display:flex;flex-direction:column;gap:var(--space-2)}@media (min-width: 400px){.contact-item{flex-direction:row;align-items:center}}.contact-label{font-weight:var(--weight-medium);color:var(--text-secondary);min-width:80px}.contact-link{color:var(--interactive-primary);text-decoration:none;transition:color var(--duration-base)}.contact-link:hover,.contact-link:active{color:var(--interactive-primary-hover);text-decoration:underline}.event-section{margin-bottom:var(--space-7);padding-bottom:var(--space-7);border-bottom:1px solid var(--border-subtle)}.event-section:last-of-type{border-bottom:none;padding-bottom:0}.event-section h3{margin:0 0 var(--space-4) 0;font-size:var(--text-lg);color:var(--text-secondary);font-weight:var(--weight-semibold)}.event-description{margin-bottom:var(--space-7)}.event-description h3{margin:0 0 var(--space-4) 0;font-size:var(--text-lg);color:var(--text-secondary)}.event-description p{margin:0;color:var(--text-muted);line-height:1.6;white-space:pre-wrap}.races-list{display:flex;flex-direction:column;gap:var(--space-4)}.event-races-toggle{align-self:flex-start;padding:var(--space-3) var(--space-5);background:none;border:1px solid var(--interactive-primary);color:var(--interactive-primary);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-base)}.event-races-toggle:hover,.event-races-toggle:active{background-color:var(--interactive-primary-soft)}.race-item{padding:var(--space-5);background-color:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.race-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-5);margin-bottom:var(--space-3)}.race-name{font-weight:var(--weight-semibold);color:var(--text-secondary);flex:1}.race-price{font-weight:var(--weight-semibold);color:var(--interactive-primary);font-size:var(--text-lg);white-space:nowrap}.race-distance{font-size:var(--text-base);color:var(--text-muted);margin-bottom:var(--space-2)}.race-date{font-size:var(--text-sm);color:var(--text-muted)}.organizer-name{margin-bottom:var(--space-4);font-size:var(--text-md);color:var(--text-secondary)}.event-actions{position:sticky;bottom:calc(var(--bottom-nav-height-ios) + var(--safe-bottom));z-index:var(--z-sticky);display:flex;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-5);padding:var(--space-4) 0 var(--space-3);background-color:var(--surface-raised);border-top:1px solid var(--border-subtle)}.event-actions>*{flex:1;min-height:var(--tap-target-min)}.event-share{position:relative}.event-share-trigger{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--interactive-primary);background-color:var(--surface-base);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;color:var(--interactive-primary)}.event-share-trigger:hover,.event-share-trigger:active{background-color:var(--interactive-primary-soft)}.event-share-icon{width:18px;height:18px;fill:currentColor}.event-share-menu{position:absolute;top:calc(100% + 6px);right:0;background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);min-width:190px;display:flex;flex-direction:column;padding:var(--space-3) 0;z-index:20}.event-share-item{padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--text-secondary);background:none;border:none;text-align:left;font-size:var(--text-sm);cursor:pointer}.event-share-item:hover,.event-share-item:active{background-color:var(--surface-hover)}.event-share-button{width:100%}.open-source-button{flex:1;padding:var(--space-4);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base)}.open-source-button:hover:not(:disabled),.open-source-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.open-source-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.register-in-app-button{width:100%;padding:var(--space-4) var(--space-7);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base)}.register-in-app-button:hover:not(:disabled),.register-in-app-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.register-in-app-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.pricing-list{display:flex;flex-direction:column;gap:var(--space-3)}.pricing-tier{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background-color:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.tier-name{font-weight:var(--weight-medium);color:var(--text-secondary)}.tier-price{font-weight:var(--weight-semibold);color:var(--interactive-primary);font-size:var(--text-md)}.route-image-container{margin-top:var(--space-4);border-radius:var(--radius-md);overflow:hidden}.route-image{width:100%;height:auto;display:block;object-fit:contain}.event-friends-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-hover)}.event-friends-avatars{display:flex;align-items:center}.event-friend-avatar{width:28px;height:28px;border-radius:var(--radius-circle);background-color:var(--avatar-bg);border:2px solid var(--surface-base);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--text-muted);overflow:hidden}.event-friend-avatar+.event-friend-avatar{margin-left:-8px}.event-friend-avatar img{width:100%;height:100%;object-fit:cover}.event-friends-text{font-size:var(--text-base);color:var(--text-secondary)}.event-friends-button{cursor:pointer;border:none;text-align:left}.event-no-link-note{margin:0 0 var(--space-4);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-muted)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.metric-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-tile{padding:var(--space-4) var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-card);background-color:var(--surface-raised)}.metric-tile-value{font-size:var(--text-3xl);line-height:var(--leading-tight);font-weight:var(--weight-bold);color:var(--text-primary);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric-tile-label{margin-top:var(--space-2);font-size:var(--text-base);color:var(--text-muted)}.metric-grid--compact .metric-tile-value{font-size:var(--text-xl)}.activity-detail-container{padding:var(--space-5);max-width:var(--layout-max-width);margin:0 auto;padding-bottom:var(--bottom-nav-height-ios)}.activity-detail-header{display:flex;gap:var(--space-5);align-items:center;margin-bottom:var(--space-5)}.activity-detail-actions{margin-left:auto;display:flex;gap:var(--space-3);align-items:center}.activity-detail-menu{position:relative}.activity-detail-menu-button{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background-color:var(--surface-base);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-lg);color:var(--text-primary);position:relative}.activity-detail-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:var(--space-2);z-index:30}.activity-detail-menu-item{width:100%;text-align:left;background:none;border:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.activity-detail-menu-item:hover,.activity-detail-menu-item:active{background-color:var(--surface-hover)}.activity-detail-menu-item.danger{color:var(--danger-text)}.activity-detail-button{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background-color:var(--surface-base);font-size:var(--text-sm);cursor:pointer}.activity-detail-icon-button{padding:var(--space-3);width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;position:relative}.activity-detail-icon{width:16px;height:16px;fill:currentColor;display:block}.activity-detail-share{position:relative}.activity-detail-share-menu{position:absolute;top:calc(100% + 6px);right:0;background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);min-width:190px;display:flex;flex-direction:column;padding:var(--space-3) 0;z-index:20}.activity-detail-share-item{padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--text-secondary);background:none;border:none;text-align:left;font-size:var(--text-sm);cursor:pointer}.activity-detail-share-item:hover,.activity-detail-share-item:active{background-color:var(--surface-hover)}.activity-detail-share-button{width:100%}.activity-detail-button-danger{color:var(--danger-text);border-color:var(--danger-border)}.activity-detail-header h2{margin:0;font-size:var(--text-xl);color:var(--text-primary)}.activity-detail-subtitle{font-size:var(--text-base);color:var(--text-muted)}.activity-sport-badge{display:inline-flex;align-items:center;margin-top:var(--space-3);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background-color:var(--info-bg);color:var(--info-text);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.2px}.activity-sport-badge.sport-running{background-color:var(--sport-running-bg);color:var(--sport-running-text)}.activity-sport-badge.sport-cycling{background-color:var(--sport-cycling-bg);color:var(--sport-cycling-text)}.activity-sport-badge.sport-skiing{background-color:var(--sport-skiing-bg);color:var(--sport-skiing-text)}.activity-sport-badge.sport-swimming{background-color:var(--sport-swimming-bg);color:var(--sport-swimming-text)}.activity-track-status{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background-color:var(--surface-hover);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-muted)}.activity-detail-info{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-4);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.activity-detail-record-source{margin-bottom:var(--space-4);padding:var(--space-4);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.activity-detail-link{background:none;border:none;color:var(--interactive-primary);cursor:pointer;font-size:var(--text-base);padding:0}.activity-detail-link:hover,.activity-detail-link:active{text-decoration:underline}.activity-record-segment{margin-bottom:var(--space-4);padding:var(--space-4);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.activity-record-segment-title{font-size:var(--text-base);font-weight:var(--weight-semibold);margin-bottom:var(--space-3)}.activity-record-links{margin-bottom:var(--space-4);padding:var(--space-4);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.activity-record-links-title{font-size:var(--text-base);font-weight:var(--weight-semibold);margin-bottom:var(--space-3)}.activity-record-links-list{display:flex;flex-direction:column;gap:var(--space-3)}.activity-record-link{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--surface-sunken);cursor:pointer;text-align:left}.activity-record-link-title{font-size:var(--text-base);color:var(--text-secondary)}.activity-record-link-value{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary)}.activity-record-links-loading,.activity-record-links-empty{font-size:var(--text-sm);color:var(--text-muted)}.activity-detail-history{margin-top:var(--space-4);background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4)}.activity-detail-history h3{margin:0 0 var(--space-3);font-size:var(--text-md)}.activity-detail-history-list{display:flex;flex-direction:column;gap:var(--space-3)}.activity-detail-history-item{display:flex;justify-content:space-between;font-size:var(--text-base);color:var(--text-secondary)}.activity-detail-history-date{color:var(--text-muted)}.activity-info-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-5);min-height:32px}.activity-info-label{font-size:var(--text-sm);color:var(--text-muted)}.activity-info-value{font-size:var(--text-base);color:var(--text-primary);text-align:right}.activity-track-empty{padding:var(--space-5);background-color:var(--surface-sunken);border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-muted);text-align:center}.activity-track-upload{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.activity-summary{margin-top:var(--space-5)}.activity-detail-metrics{margin-bottom:var(--space-5)}.activity-elevation{margin-top:var(--space-5);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised)}.activity-elevation-title{font-size:var(--text-md);color:var(--text-secondary);margin-bottom:var(--space-3)}.activity-chart-toolbar{margin-top:var(--space-5);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.activity-chart-toggle{display:flex;gap:var(--space-3)}.activity-chart-toggle-button{min-height:var(--tap-target-min);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);border:1px solid var(--border-default);background-color:var(--surface-muted);color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.activity-chart-toggle-button:hover,.activity-chart-toggle-button:active{background-color:var(--surface-hover)}.activity-chart-toggle-button.active{background-color:var(--interactive-primary);color:var(--text-on-accent);border-color:var(--interactive-primary)}.activity-chart-hint,.activity-chart-axis-label{font-size:var(--text-xs);color:var(--text-muted)}.activity-chart-section{margin-top:var(--space-5)}.activity-chart-section-title{font-size:var(--text-md);color:var(--text-primary);margin:var(--space-5) 0 var(--space-3);font-weight:var(--weight-semibold)}.chart-tooltip{background-color:var(--surface-base);border:1px solid var(--border-subtle);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary)}.chart-tooltip-row{margin-bottom:var(--space-2)}.chart-tooltip-value{font-weight:var(--weight-semibold)}.file-info{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--surface-hover);border-radius:var(--radius-md);font-size:var(--text-base)}.file-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-lg);padding:0;margin-left:var(--space-3);width:20px;height:20px;display:flex;align-items:center;justify-content:center}.file-remove:hover,.file-remove:active{color:var(--text-secondary)}.file-remove:disabled{color:var(--interactive-disabled-text);cursor:not-allowed}.activity-detail-menu-button:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.activity-detail-icon-button:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:var(--space-5);background-color:var(--surface-hover)}.login-card{width:100%;max-width:400px;background-color:var(--surface-base);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-2)}.login-card h1{margin:0 0 var(--space-3) 0;font-size:var(--text-2xl);color:var(--text-primary)}.login-subtitle{margin:0 0 var(--space-7) 0;color:var(--text-muted);font-size:var(--text-base)}.error-message{background-color:var(--danger-bg);color:var(--danger-text);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-5);font-size:var(--text-base)}.login-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-group{display:flex;flex-direction:column;gap:var(--space-3)}.form-group label{font-size:var(--text-base);color:var(--text-secondary);font-weight:var(--weight-medium)}.form-group input{padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-md);transition:border-color var(--duration-base);min-height:var(--tap-target-min);background-color:var(--surface-raised);color:var(--text-primary)}.form-group input:focus{outline:none;border-color:var(--interactive-primary)}.form-group input:disabled{background-color:var(--surface-hover);cursor:not-allowed}.login-button{margin-top:var(--space-3);padding:var(--space-4);background-color:var(--interactive-primary);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base)}.login-button:hover:not(:disabled),.login-button:active:not(:disabled){background-color:var(--interactive-primary-hover)}.login-button:disabled{background-color:var(--interactive-disabled-bg);cursor:not-allowed}.app{display:flex;flex-direction:column;min-height:100vh;padding-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom))}.auth-required{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-7);text-align:center;color:var(--text-primary);background:var(--surface-page)}.app-content{flex:1;width:100%;max-width:100%;overflow-x:hidden;padding-bottom:var(--space-5)}.back-arrow-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-base);color:var(--interactive-primary);font-size:var(--text-lg);line-height:1;cursor:pointer;text-decoration:none;transition:background-color var(--duration-base),border-color var(--duration-base),box-shadow var(--duration-base);position:relative}.back-arrow-icon{display:block;transform:translateY(-1px)}.back-arrow-button:hover,.back-arrow-button:active{background-color:var(--surface-hover);border-color:var(--border-default)}.back-arrow-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--border-ring)}@media (min-width: 768px){.app-content{max-width:var(--layout-max-width);margin:0 auto}}.back-arrow-button:after{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}:root{--p-neutral-0:#ffffff;--p-neutral-25:#fbfcfc;--p-neutral-50:#f7f9f8;--p-neutral-100:#ecf1ef;--p-neutral-200:#dfe7e3;--p-neutral-300:#c6d1cc;--p-neutral-400:#a2b0ac;--p-neutral-500:#708087;--p-neutral-600:#53656d;--p-neutral-700:#3c4d56;--p-neutral-800:#24353e;--p-neutral-900:#14232b;--p-neutral-1000:#0b161c;--p-ink-base:#0f191f;--p-ink-raised:#18272f;--p-ink-raised-2:#20333d;--p-ink-line:#2c4148;--p-ink-line-strong:#82959e;--p-ink-text:#f3f7f5;--p-ink-text-2:#afbfb8;--p-ink-text-3:#9fb0ab;--p-accent-50:#e6f4ef;--p-accent-100:#cceade;--p-accent-200:#8ee9cd;--p-accent-300:#5ee0b6;--p-accent-400:#39d6a3;--p-accent-500:#008f67;--p-accent-600:#007957;--p-accent-700:#00674a;--p-accent-800:#00533c;--p-accent-900:#063d2e;--p-accent-dark-bg:#153e34;--p-accent-dark-line:#1d5243;--p-blue-50:#eaf0ff;--p-blue-200:#b4c7f6;--p-blue-300:#aec5ff;--p-blue-500:#174fe2;--p-blue-600:#1243c4;--p-blue-700:#143fb0;--p-blue-dark-bg:#172f57;--p-blue-dark-line:#2d4a80;--p-green-50:#e6f4ef;--p-green-200:#a8dcb4;--p-green-500:#3aa76d;--p-green-600:#1f6b4d;--p-green-300:#6fd68a;--p-green-dark-bg:#153e34;--p-green-dark-line:#2f5c3b;--p-red-50:#feedea;--p-red-200:#f3c6c6;--p-red-500:#b42318;--p-red-600:#8f1b13;--p-red-300:#ffb4ab;--p-red-dark-bg:#3e2225;--p-red-dark-line:#6b3a3a;--p-amber-50:#fff4e5;--p-amber-200:#f7d488;--p-amber-500:#b36100;--p-amber-600:#8a4b00;--p-amber-300:#ffd08a;--p-amber-dark-bg:#3a2a12;--p-amber-dark-line:#6b5020;--p-violet-50:#efe9fb;--p-violet-300:#b9a6f2;--p-violet-600:#5b3ea8;--p-violet-dark-bg:#201b33;--p-teal-50:#e2f4f5;--p-teal-300:#6fc9d1;--p-teal-600:#0f5f66;--p-teal-dark-bg:#102629;--p-pink-50:#fce7ef;--p-pink-300:#f2a3bd;--p-pink-600:#a8154b;--p-pink-dark-bg:#2e1621;--p-indigo-50:#e8eaf6;--p-indigo-300:#a5b0f0;--p-indigo-600:#2f3d94;--p-indigo-dark-bg:#191d33;--p-white:#ffffff;--p-black:#000000;--p-alpha-black-04:rgba(11,22,28,.04);--p-alpha-black-08:rgba(11,22,28,.08);--p-alpha-black-12:rgba(11,22,28,.12);--p-alpha-black-20:rgba(11,22,28,.2);--p-alpha-black-45:rgba(11,22,28,.45);--p-alpha-black-60:rgba(7,15,20,.6);--p-alpha-black-72:rgba(7,15,20,.72);--p-alpha-white-08:rgba(255,255,255,.08);--p-alpha-white-12:rgba(255,255,255,.12);--p-alpha-white-70:rgba(255,255,255,.7);--p-alpha-danger-10:rgba(204,51,51,.1);--p-alpha-danger-dark-16:rgba(255,138,128,.16);--p-alpha-green-35:rgba(58,167,109,.35);--p-alpha-green-dark-30:rgba(62,207,160,.3);--p-alpha-black-35:rgba(11,22,28,.35);--p-alpha-black-dark-60:rgba(0,0,0,.6);--p-alpha-accent-10:rgba(0,121,87,.1);--p-alpha-accent-12:rgba(0,121,87,.12);--p-alpha-accent-20:rgba(0,121,87,.2);--p-alpha-accent-30:rgba(0,121,87,.3);--p-alpha-accent-dark-12:rgba(57,214,163,.12);--p-alpha-accent-dark-16:rgba(57,214,163,.16);--p-alpha-accent-dark-28:rgba(57,214,163,.28)}:root,[data-theme=light]{--surface-page:var(--p-neutral-50);--surface-base:var(--p-neutral-0);--surface-raised:var(--p-neutral-0);--surface-sunken:var(--p-neutral-100);--surface-muted:var(--p-neutral-100);--surface-overlay:var(--p-neutral-0);--surface-scrim:var(--p-alpha-black-45);--surface-hover:var(--p-neutral-50);--surface-pressed:var(--p-neutral-100);--surface-skeleton:var(--p-neutral-100);--surface-inverse:var(--p-neutral-900);--text-primary:var(--p-neutral-900);--text-secondary:var(--p-neutral-700);--text-muted:var(--p-neutral-600);--text-disabled:var(--p-neutral-400);--text-inverse:var(--p-neutral-0);--text-link:var(--p-accent-700);--text-on-accent:var(--p-white);--text-on-inverse:var(--p-neutral-0);--border-subtle:var(--p-neutral-200);--border-default:var(--p-neutral-300);--border-control:var(--p-neutral-500);--border-strong:var(--p-neutral-500);--border-focus:var(--p-accent-600);--border-ring:var(--p-alpha-accent-20);--interactive-primary:var(--p-accent-600);--interactive-primary-hover:var(--p-accent-700);--interactive-primary-active:var(--p-accent-800);--interactive-primary-soft:var(--p-accent-50);--interactive-primary-soft-hover:var(--p-accent-100);--interactive-disabled-bg:var(--p-neutral-200);--interactive-disabled-text:var(--p-neutral-500);--interactive-secondary-bg:var(--p-neutral-0);--interactive-secondary-hover:var(--p-neutral-50);--interactive-ghost-hover:var(--p-neutral-100);--accent-brand:var(--p-accent-500);--success-ring:var(--p-alpha-green-35);--success-bg:var(--p-green-50);--success-border:var(--p-green-200);--success-text:var(--p-green-600);--success-solid:var(--p-green-500);--danger-soft:var(--p-alpha-danger-10);--accent-soft-alpha:var(--p-alpha-accent-10);--accent-soft-alpha-strong:var(--p-alpha-accent-12);--danger-bg:var(--p-red-50);--danger-border:var(--p-red-200);--danger-text:var(--p-red-500);--danger-text-strong:var(--p-red-600);--danger-solid:var(--p-red-500);--danger-solid-hover:var(--p-red-600);--warning-bg:var(--p-amber-50);--warning-border:var(--p-amber-200);--warning-text:var(--p-amber-600);--warning-solid:var(--p-amber-500);--info-bg:var(--p-blue-50);--info-border:var(--p-blue-200);--info-text:var(--p-blue-500);--info-solid:var(--p-blue-500)}[data-theme=dark]{--surface-page:var(--p-ink-base);--surface-base:var(--p-ink-raised);--surface-raised:var(--p-ink-raised);--surface-sunken:var(--p-ink-raised-2);--surface-muted:var(--p-ink-raised-2);--surface-overlay:var(--p-ink-raised);--surface-scrim:var(--p-alpha-black-72);--surface-hover:var(--p-ink-raised-2);--surface-pressed:var(--p-ink-line);--surface-skeleton:var(--p-ink-raised-2);--surface-inverse:var(--p-neutral-100);--text-primary:var(--p-ink-text);--text-secondary:var(--p-ink-text-2);--text-muted:var(--p-ink-text-3);--text-disabled:var(--p-ink-line-strong);--text-inverse:var(--p-neutral-900);--text-link:var(--p-accent-300);--text-on-accent:var(--p-neutral-900);--text-on-inverse:var(--p-neutral-900);--border-subtle:var(--p-ink-line);--border-default:var(--p-ink-line);--border-control:var(--p-ink-line-strong);--border-strong:var(--p-ink-line-strong);--border-focus:var(--p-accent-400);--border-ring:var(--p-alpha-accent-dark-28);--interactive-primary:var(--p-accent-400);--interactive-primary-hover:var(--p-accent-300);--interactive-primary-active:var(--p-accent-200);--interactive-primary-soft:var(--p-accent-dark-bg);--interactive-primary-soft-hover:var(--p-accent-dark-line);--interactive-disabled-bg:var(--p-ink-line);--interactive-disabled-text:#7c8794;--interactive-secondary-bg:var(--p-ink-raised);--interactive-secondary-hover:var(--p-ink-raised-2);--interactive-ghost-hover:var(--p-alpha-white-08);--accent-brand:var(--p-accent-400);--success-ring:var(--p-alpha-green-dark-30);--success-bg:var(--p-green-dark-bg);--success-border:var(--p-green-dark-line);--success-text:var(--p-green-300);--success-solid:var(--p-green-500);--danger-soft:var(--p-alpha-danger-dark-16);--accent-soft-alpha:var(--p-alpha-accent-dark-16);--accent-soft-alpha-strong:var(--p-alpha-accent-dark-12);--danger-bg:var(--p-red-dark-bg);--danger-border:var(--p-red-dark-line);--danger-text:var(--p-red-300);--danger-text-strong:var(--p-red-300);--danger-solid:var(--p-red-500);--danger-solid-hover:var(--p-red-300);--warning-bg:var(--p-amber-dark-bg);--warning-border:var(--p-amber-dark-line);--warning-text:var(--p-amber-300);--warning-solid:var(--p-amber-500);--info-bg:var(--p-blue-dark-bg);--info-border:var(--p-blue-dark-line);--info-text:var(--p-blue-300);--info-solid:var(--p-blue-500)}:root{--font-ui:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",sans-serif;--font-numeric:var(--font-ui);--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:28px;--leading-tight:1.3;--leading-snug:1.4;--leading-normal:1.5;--leading-relaxed:1.6;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.02em}.num-tabular,[data-numeric]{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}:root{--space-0:0;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px;--layout-max-width:640px;--layout-gutter:16px;--tap-target-min:44px;--button-height-min:48px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--bottom-nav-height:56px;--bottom-nav-height-ios:76px;--z-base:0;--z-sticky:100;--z-nav:1000;--z-dropdown:1500;--z-overlay:2000;--z-toast:2500}:root{--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--radius-circle:50%;--radius-card:var(--radius-xl);--radius-control:var(--radius-lg)}:root,[data-theme=light]{--shadow-none:none;--shadow-1:0 1px 2px var(--p-alpha-black-04),0 1px 3px var(--p-alpha-black-04);--shadow-2:0 2px 8px var(--p-alpha-black-08);--shadow-3:0 8px 24px var(--p-alpha-black-12);--shadow-nav:0 -2px 8px var(--p-alpha-black-04);--shadow-color-strong:var(--p-alpha-black-35);--elevated-bg:var(--surface-raised);--elevated-border:1px solid var(--border-subtle)}[data-theme=dark]{--shadow-none:none;--shadow-1:none;--shadow-2:0 2px 12px rgba(0,0,0,.5);--shadow-3:0 12px 32px rgba(0,0,0,.6);--shadow-nav:none;--shadow-color-strong:var(--p-alpha-black-dark-60);--elevated-bg:var(--p-ink-raised);--elevated-border:1px solid var(--p-ink-line)}:root{--duration-instant:80ms;--duration-fast:.12s;--duration-base:.18s;--duration-slow:.22s;--duration-sheet:.28s;--duration-disclosure:.35s;--ease-standard:cubic-bezier(.2,.8,.2,1);--ease-decelerate:cubic-bezier(0,0,0,1);--ease-accelerate:cubic-bezier(.3,0,1,1);--press-scale:.97}@media (prefers-reduced-motion:reduce){:root{--duration-instant:0ms;--duration-fast:0ms;--duration-base:0ms;--duration-slow:0ms;--duration-disclosure:0ms;--duration-sheet:0ms;--press-scale:1 }*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}:root,[data-theme=light]{--chart-series-1:#007957;--chart-series-2:#d55e00;--chart-series-3:#0072b2;--chart-series-4:#b3568c;--chart-series-5:#6a4fc4;--chart-series-6:#8a6a00;--chart-grid:var(--p-neutral-200);--chart-axis:var(--p-neutral-300);--chart-axis-text:var(--p-neutral-600);--chart-tooltip-bg:var(--p-neutral-0);--chart-tooltip-border:var(--p-neutral-300);--chart-tooltip-text:var(--p-neutral-900);--chart-area-from:rgba(0,121,87,.28);--chart-area-to:rgba(0,121,87,0);--heat-0:#ecf1ef;--heat-1:#cfe9dd;--heat-2:#94d6ba;--heat-3:#3fab85;--heat-4:#007957;--map-tile-filter:none;--map-track:#007957;--map-track-selected:#d55e00;--map-marker-fill:#007957;--map-marker-stroke:#ffffff;--map-cluster-bg:rgba(0,121,87,.85);--map-cluster-text:#ffffff;--map-user-dot:#b42318}[data-theme=dark]{--chart-series-1:#39d6a3;--chart-series-2:#ff9d5c;--chart-series-3:#6cc4f0;--chart-series-4:#f0a6cc;--chart-series-5:#a992f5;--chart-series-6:#d9b64a;--chart-grid:#20333d;--chart-axis:#2c4148;--chart-axis-text:#9fb0ab;--chart-tooltip-bg:var(--p-ink-raised-2);--chart-tooltip-border:var(--p-ink-line);--chart-tooltip-text:var(--p-ink-text);--chart-area-from:rgba(57,214,163,.3);--chart-area-to:rgba(57,214,163,0);--heat-0:#18272f;--heat-1:#14402f;--heat-2:#1c6349;--heat-3:#268a66;--heat-4:#39d6a3;--map-tile-filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.7);--map-track:#39d6a3;--map-track-selected:#ff9d5c;--map-marker-fill:#39d6a3;--map-marker-stroke:#0f191f;--map-cluster-bg:rgba(57,214,163,.85);--map-cluster-text:#0f191f;--map-user-dot:#ffb4ab}:root,[data-theme=light]{--tabbar-bg:var(--surface-base);--tabbar-border:var(--border-subtle);--tabbar-item:var(--text-muted);--tabbar-item-active:var(--interactive-primary);--tabbar-badge-bg:var(--danger-solid);--tabbar-badge-text:var(--p-white);--tabbar-fab-bg:var(--interactive-primary);--tabbar-fab-text:var(--p-white);--tabbar-fab-shadow:0 2px 8px var(--p-alpha-accent-30);--sheet-bg:var(--surface-base);--sheet-handle:var(--border-default);--sheet-scrim:var(--surface-scrim);--toast-bg:var(--surface-raised);--toast-border:var(--border-subtle);--toast-shadow:var(--shadow-2);--event-card-bg:var(--surface-raised);--event-card-border:var(--border-subtle);--event-card-hover-bg:var(--surface-hover);--event-card-going-bg:var(--success-bg);--event-card-going-border:var(--success-border);--avatar-bg:var(--surface-muted);--avatar-text:var(--text-secondary);--tag-blue-bg:var(--info-bg);--tag-blue-text:var(--info-text);--tag-green-bg:var(--success-bg);--tag-green-text:var(--success-text);--tag-orange-bg:var(--warning-bg);--tag-orange-text:var(--warning-text);--tag-red-bg:var(--danger-bg);--tag-red-text:var(--danger-text-strong);--tag-violet-bg:var(--p-violet-50);--tag-violet-text:var(--p-violet-600);--tag-teal-bg:var(--p-teal-50);--tag-teal-text:var(--p-teal-600);--tag-pink-bg:var(--p-pink-50);--tag-pink-text:var(--p-pink-600);--tag-indigo-bg:var(--p-indigo-50);--tag-indigo-text:var(--p-indigo-600);--sport-running-bg:var(--tag-blue-bg);--sport-running-text:var(--tag-blue-text);--sport-cycling-bg:var(--tag-orange-bg);--sport-cycling-text:var(--tag-orange-text);--sport-skiing-bg:var(--tag-violet-bg);--sport-skiing-text:var(--tag-violet-text);--sport-swimming-bg:var(--tag-teal-bg);--sport-swimming-text:var(--tag-teal-text);--sport-triathlon-bg:var(--tag-green-bg);--sport-triathlon-text:var(--tag-green-text)}[data-theme=dark]{--tabbar-bg:var(--p-ink-raised);--tabbar-border:var(--p-ink-line);--tabbar-fab-shadow:0 2px 12px rgba(0,0,0,.6);--tabbar-fab-text:var(--p-neutral-900);--sheet-bg:var(--p-ink-raised);--tag-violet-bg:var(--p-violet-dark-bg);--tag-violet-text:var(--p-violet-300);--tag-teal-bg:var(--p-teal-dark-bg);--tag-teal-text:var(--p-teal-300);--tag-pink-bg:var(--p-pink-dark-bg);--tag-pink-text:var(--p-pink-300);--tag-indigo-bg:var(--p-indigo-dark-bg);--tag-indigo-text:var(--p-indigo-300)}html{color-scheme:light}[data-theme=dark]{color-scheme:dark}body{font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading-normal);background-color:var(--surface-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}a{color:var(--text-link);text-decoration:none}a:hover{color:var(--interactive-primary-hover)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}::selection{background:var(--border-ring)}@keyframes ds-spin{to{transform:rotate(360deg)}}@keyframes ds-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ds-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes ds-fade-in{0%{opacity:0}to{opacity:1}}.leaflet-tile-pane{filter:var(--map-tile-filter)}.leaflet-container{background:var(--surface-sunken)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--surface-overlay);color:var(--text-primary);border:1px solid var(--border-subtle)}.leaflet-bar a,.leaflet-bar a:hover,.leaflet-bar a:active{background:var(--surface-raised);color:var(--text-primary);border-bottom-color:var(--border-subtle)}.leaflet-bar a:hover,.leaflet-bar a:active{background:var(--surface-hover)}.leaflet-control-attribution{background:var(--surface-raised)!important;color:var(--text-muted)!important}.leaflet-control-attribution a{color:var(--text-link)!important}.leaflet-attribution-flag{display:none!important}.leaflet-control-attribution{padding:0 var(--space-2)!important;border-radius:var(--radius-xs) 0 0 0;font-size:var(--text-2xs)!important}.activity-heatmap-tooltip-value,.activity-info-value,.activity-record-link-value,.metric-tile-value,.calendar-day-events-count,.calendar-day-number,.chart-tooltip-value,.distance-value,.event-card-meta,.event-preview-value,.events-total,.history-detail-value,.history-item-time,.info-value,.invite-modal-count,.pr-history-item-time,.pr-time,.rating-distance-value,.rating-rank,.rating-total,.stat-value,.track-sheet-tile-value,.track-sheet-value{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--surface-page);color:var(--text-primary)}#root{min-height:100vh;display:flex;flex-direction:column}
