@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Archivo", "Helvetica Neue", Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent;font-family:Archivo,Helvetica Neue,Arial,sans-serif;line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}:root,#theme{--bg: #0a0a0a;--surface: #141414;--surface-2: #1f1f1f;--line: #262626;--line-strong: #6e6e6e;--ink: #f5f5f5;--ink-muted: #a3a3a3;--ink-faint: #808080;--accent: #f8c73a;--on-accent: #0a0a0a;--accent-ink: #f8c73a;--accent-soft: #2a2310;--focus: var(--accent-ink);--success: #3ddc84;--danger: #ff5a4e;--profile: #5e5e5e;--profile-done: #2a2a2a;--z1: #8e8e93;--z2: #4c8dff;--z3: #2fb5a8;--z4: #5cc96b;--z5: #f8c73a;--z6: #ff8a3d;--z7: #ff4d3d;--shadow-sheet: 0 24px 64px rgba(0, 0, 0, .7);--font-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--radius-xs: 2px;--radius-sm: 6px;--radius-md: 12px;--radius-full: 999px;--top-nav-height: 68px;--bottom-nav-height: 0px}#theme.light-theme,#theme.theme--light,#theme.white-theme{--bg: #ffffff;--surface: #f5f5f4;--surface-2: #ebebea;--line: #e5e5e3;--line-strong: #7a7a77;--ink: #0a0a0a;--ink-muted: #5c5c5c;--ink-faint: #737373;--accent-ink: #8a6600;--accent-soft: #fdf3d1;--success: #157f3c;--danger: #c4221a;--profile: #8c8c89;--profile-done: #e0e0de;--z1: #6b6b70;--z2: #2f6fe0;--z3: #138a80;--z4: #2f9a44;--z5: #b98a00;--z6: #d9601a;--z7: #d42d1f;--shadow-sheet: 0 24px 64px rgba(10, 10, 10, .14)}@media(max-width:768px){:root,#theme{--top-nav-height: 49px;--bottom-nav-height: calc(76px + env(safe-area-inset-bottom, 0px)) }}#theme{background-color:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}#theme ::selection{background:var(--accent);color:var(--on-accent)}*,*:before,*:after{box-sizing:border-box}html{height:100%;font-size:10px}body{margin:0;min-width:320px;height:100%;line-height:1.4}h1,h2,h3,h4,h5,h6,p,ul{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}a{color:var(--accent-ink);text-decoration:none}img,svg{vertical-align:middle}[hidden]{display:none!important}.wrapper{position:relative;display:flex;flex-direction:column;width:100%;height:100vh;height:100dvh;overflow:hidden}.app-pages{position:absolute;inset:var(--top-nav-height) 0 var(--bottom-nav-height);display:flex;flex-direction:column;min-height:0;overflow:hidden}.page{position:absolute;inset:0;display:none;width:100%;min-height:0;transition:opacity .2s ease-in-out,transform .2s ease-in-out}.page.active{display:flex;flex-direction:column}#react-dashboard,#react-settings-page{flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}#view--workouts-builder{background:var(--bg);height:100%;overflow:hidden}#react-workout-builder{height:100%;display:flex;flex-direction:column}.workout-builder{display:flex;flex-direction:column;height:100%;gap:16px;font-family:var(--font-sans);color:var(--ink)}.workout-builder-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px;background:var(--surface);border-radius:8px}.workout-builder-toolbar button:not(.ip-btn):not(.ip-iconbtn):not(.ip-seg button){padding:8px 16px;border:none;border-radius:4px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-size:14px;transition:background .2s,transform .1s}.workout-builder-toolbar button:not(.ip-btn):not(.ip-iconbtn):not(.ip-seg button):hover{background:var(--surface);transform:translateY(-1px)}.workout-builder-toolbar button:not(.ip-btn):not(.ip-iconbtn):not(.ip-seg button):disabled{opacity:.5;cursor:not-allowed;background:var(--surface-2)}.workout-builder-toolbar .divider{width:1px;height:24px;background:var(--line);margin:0 8px}.builder-document-row{display:flex;align-items:center;gap:8px;flex:0 0 100%;min-width:0;padding-bottom:10px;border-bottom:1px solid var(--line)}.builder-name{flex:1;min-width:0;height:40px;border:0;border-radius:4px;padding:0 8px;background:transparent;color:var(--ink);font:600 18px/24px var(--font-sans)}.builder-name:hover{background:var(--surface-2)}.builder-mode-row{flex:0 1 auto;min-width:0}.builder-mode-row .ip-seg{max-width:100%}.builder-menu-trigger{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:4px;cursor:pointer;color:var(--ink);list-style:none}.builder-menu-trigger::-webkit-details-marker{display:none}.builder-menu-trigger:hover{background:var(--surface-2)}.builder-settings{margin-left:auto}.workout-builder-toolbar .builder-menu-right,.workout-builder-toolbar .dropdown-menu-wide{left:auto;right:0}.workout-builder-toolbar .builder-settings-panel{width:280px;max-width:calc(100vw - 48px);padding:16px;display:flex;flex-direction:column;gap:16px}.builder-setting-title{font:500 12px/16px var(--font-mono);color:var(--ink-muted)}.builder-settings-panel .ip-seg{width:100%}.builder-settings-panel .ip-seg button{flex:1;padding:8px;font-size:12px}.builder-duration{width:112px}.workout-builder-toolbar .dropdown-item{display:flex;align-items:center;gap:8px;border-radius:0;text-align:left}.workout-builder-toolbar .dropdown-item-interval{display:grid}.workout-builder-toolbar .builder-danger{color:var(--danger)}.workout-builder-app .property-actions{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:2px;padding-top:0;margin-top:0;border-top:0}.workout-builder-app .property-actions .ip-btn{font-size:12px;padding:8px}@media(max-width:768px){.workout-builder-main{flex:none!important}.workout-builder-app .property-panel{flex:none}.workout-builder-toolbar .toolbar-group{gap:4px}.workout-builder-toolbar .ip-btn{font-size:13px;padding:8px}.workout-builder-toolbar .ip-iconbtn{width:32px;height:36px}.builder-name{font-size:16px}}.workout-builder-timeline{flex:1;min-height:300px;background:var(--surface);border-radius:8px;overflow:hidden}.workout-builder-timeline svg{width:100%;height:100%}.workout-builder-bottom{display:flex;gap:16px}.workout-builder-metrics{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;padding:16px;background:var(--surface);border-radius:8px}.metric-item{display:flex;flex-direction:column;align-items:center;gap:4px}.metric-label{font-size:12px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.5px}.metric-value{font-size:24px;font-weight:700;font-family:var(--font-mono)}.workout-builder-properties{width:280px;padding:16px;background:var(--surface);border-radius:8px}.property-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.workout-block{cursor:move;transition:opacity .1s}.workout-block:hover{opacity:.9}.workout-block.selected{stroke:var(--accent-ink);stroke-width:2}.resize-handle{cursor:ew-resize}.resize-handle.top{cursor:ns-resize}.zone-1{fill:var(--z1)}.zone-2{fill:var(--z2)}.zone-3{fill:var(--z3)}.zone-4{fill:var(--z4)}.zone-5{fill:var(--z5)}.zone-6{fill:var(--z6)}.zone-7{fill:var(--z7)}.shortcuts-hint{font-size:11px;color:var(--ink-muted);padding:8px;display:flex;gap:16px}.shortcut{display:flex;align-items:center;gap:4px}.shortcut kbd{background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:2px 6px;font-size:10px;font-family:var(--font-mono)}@media(max-width:768px){.workout-builder-main{flex-direction:column;overflow:visible!important}.workout-builder-canvas{flex:none!important;height:280px;min-height:280px}.workout-builder-app .property-panel{width:100%;min-width:0;max-height:280px;border-left:0;border-top:1px solid var(--line)}.workout-builder-app{height:auto!important;min-height:600px;overflow:visible!important}}.ftp-modal{width:min(420px,calc(100vw - 32px));padding:32px 40px}.ftp-modal[open]{display:flex;flex-direction:column;gap:24px}.ftp-modal__header{display:flex;flex-direction:column;align-items:center;gap:4px}.ftp-modal__icon{font-size:40px;color:var(--accent-ink)}.ftp-modal__title{margin:0;font-size:22.4px;font-weight:700}.ftp-modal__protocol{margin:0;font-size:13.6px;color:var(--ink-muted)}.ftp-modal__result{display:flex;flex-direction:column;align-items:center;gap:4px}.ftp-modal__estimated{display:flex;align-items:baseline;gap:4px}.ftp-modal__estimated-value{font-size:56px;font-weight:800;color:var(--accent-ink);line-height:1}.ftp-modal__estimated-unit{font-size:24px;color:var(--ink-muted)}.ftp-modal__estimated-label{margin:0;font-size:12.8px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0}.ftp-modal__comparison{display:flex;justify-content:space-around;background:var(--surface-2);border-radius:8px;padding:13.6px 16px}.ftp-modal__comparison-item{display:flex;flex-direction:column;align-items:center;gap:3.2px}.ftp-modal__comparison-label{font-size:11.52px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0}.ftp-modal__comparison-value{font-size:15.2px;font-weight:600}.ftp-modal__delta--positive{color:var(--success)}.ftp-modal__delta--negative{color:var(--danger)}.ftp-modal__actions{display:flex;gap:12px}.ride-summary-modal{width:min(480px,calc(100vw - 32px));padding:28px 32px}.ride-summary-modal[open]{display:flex;flex-direction:column;gap:24px}.ride-summary__header{display:flex;align-items:center;gap:16px}.ride-summary__icon{font-size:36px;color:var(--success);flex-shrink:0}.ride-summary__header-text{display:flex;flex-direction:column;gap:1.6px}.ride-summary__title{margin:0;font-size:20.8px;font-weight:700}.ride-summary__workout-name{margin:0;font-size:13.12px;color:var(--ink-muted)}.ride-summary__duration{margin:0;font-size:17.6px;font-weight:600;color:var(--ink)}.ride-summary__kpis{display:flex;gap:8px;flex-wrap:wrap}.ride-summary__kpi{flex:1;min-width:64px;display:flex;flex-direction:column;align-items:center;background:var(--surface-2);border-radius:8px;padding:9.6px 6.4px;gap:3.2px}.ride-summary__kpi-value{font-size:22.4px;font-weight:800;line-height:1;color:var(--ink)}.ride-summary__kpi-label{font-size:10.88px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0}.ride-summary__zones{display:flex;flex-direction:column;gap:7.2px}.ride-summary__zones-title{margin:0 0 3.2px;font-size:11.52px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0}.ride-summary__zone-row{display:grid;grid-template-columns:120px 1fr 40px;align-items:center;gap:8px}.ride-summary__zone-label{font-size:12.48px;color:var(--ink-muted)}.ride-summary__zone-track{background:var(--surface-2);border-radius:3px;height:8px;overflow:hidden}.ride-summary__zone-fill{height:100%;border-radius:3px;transition:width .4s ease}.ride-summary__zone-pct{font-size:12px;color:var(--ink-muted);text-align:right}.ride-summary__stats{display:flex;flex-wrap:wrap;gap:9.6px 19.2px}.ride-summary__stat{display:flex;align-items:center;gap:4.8px;font-size:13.12px;color:var(--ink-muted)}.ride-summary__stat-icon{font-size:16px;color:var(--ink-faint)}.ride-summary__actions{display:flex;gap:12px;flex-wrap:wrap}.ride-summary__actions .ip-btn{flex:1;min-width:140px}.ride-summary__farewell{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--line) 50%,var(--surface-2) 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear;border-radius:4px}.schedule-cal{width:min(320px,100%);-webkit-user-select:none;user-select:none}.schedule-cal__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.schedule-cal__nav-btn{background:none;border:none;cursor:pointer;color:var(--ink-muted);padding:4px;border-radius:4px;display:flex;align-items:center}.schedule-cal__nav-btn:hover:not(:disabled){color:var(--ink);background:var(--surface-2)}.schedule-cal__nav-btn:disabled{opacity:.3;cursor:default}.schedule-cal__month-label{font-weight:600;font-size:15.2px}.schedule-cal__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.schedule-cal__weekday{text-align:center;font-size:10.4px;font-weight:600;color:var(--ink-muted);text-transform:uppercase;padding:3.2px 0}.schedule-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.schedule-cal__cell{min-height:40px;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;font-size:12.8px}.schedule-cal__cell--empty{background:transparent}.schedule-cal__cell--disabled{color:var(--ink-muted);opacity:.4;cursor:default}.schedule-cal__cell--future{background:var(--surface-2);cursor:pointer;color:var(--ink)}.schedule-cal__cell--future:hover{background:var(--accent-soft)}.schedule-cal__cell--today{outline:2px solid var(--accent-ink);outline-offset:-2px}.schedule-cal__day-num{line-height:1}.schedule-cal__dot{width:5px;height:5px;border-radius:50%;background:var(--accent-ink);margin-top:3px}.activity-list-container{display:flex;gap:16px;height:100%;min-height:300px}.activity-list{flex:0 0 320px;display:flex;flex-direction:column;background:var(--surface);border-radius:8px;overflow:hidden}.activity-list__header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--line)}.activity-list__title{margin:0;font-size:16px;font-weight:600;color:var(--ink)}.activity-list__count{background:var(--accent-ink);color:#fff;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600}.activity-list__items{flex:1;overflow-y:auto;padding:8px}.activity-item-skeleton{background:var(--surface-2);border-radius:6px;margin-bottom:8px;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.activity-item-skeleton__title{height:14px;width:55%;border-radius:4px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--line) 50%,var(--surface-2) 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear}.activity-item-skeleton__meta{height:11px;width:35%;border-radius:4px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--line) 50%,var(--surface-2) 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear;animation-delay:.1s}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.activity-list__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:32px;text-align:center;color:var(--ink-muted);gap:8px}.activity-list__empty-icon{font-size:40px;opacity:.3;margin-bottom:4px}.activity-list__empty-title{font-size:14.4px;font-weight:600;color:var(--ink-muted)}.activity-list__empty-hint{font-size:14px;opacity:.7;line-height:1.4}.activity-item{background:var(--surface-2);border-radius:6px;margin-bottom:8px;overflow:hidden;transition:background-color .15s ease}.activity-item:hover{background:var(--surface-2)}.activity-item.selected{background:var(--accent-soft);border-left:3px solid var(--accent-ink)}.activity-item__container{padding:12px}.activity-item__row{display:flex;align-items:center;gap:8px}.activity-item__info{flex:1;display:flex;flex-direction:column;gap:4px;background:none;border:none;padding:0;text-align:left;cursor:pointer;color:inherit}.activity-item__name{font-weight:500;color:var(--ink);font-size:14.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-item__date,.activity-item__duration{font-size:12px;color:var(--ink-muted)}.activity-item__icon{fill:var(--ink-muted)}.activity-item__expanded{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.activity-item__actions{display:flex;gap:8px;justify-content:flex-end}.activity-item__action{position:relative;background:var(--surface);border:none;border-radius:4px;padding:8px;cursor:pointer;transition:background-color .15s}.activity-item__action:hover{background:var(--surface-2)}.activity-item__action-icon{width:20px;height:20px;fill:var(--ink-muted)}.activity-item__action-icon.strava-icon{fill:#fc4c02}.activity-item__action-icon.intervals-icon{fill:#ff6b35}.activity-item__action--delete{margin-left:auto;color:var(--danger)}.activity-item__action--delete:hover{background:var(--accent-soft)!important;color:var(--danger)}.activity-upload-indicator{position:absolute;bottom:2px;right:2px;width:8px;height:8px;border-radius:50%;background:var(--surface-2)}.activity-upload-indicator.uploading{background:var(--accent-ink);animation:pulse 1s infinite}.activity-upload-indicator.uploaded{background:var(--success)}.activity-upload-indicator.failed{background:var(--danger)}.activity-detail-panel{flex:1;background:var(--surface);border-radius:8px;overflow:hidden}.activity-detail-panel__empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ink-muted)}.activity-detail{padding:24px}.activity-detail__header{margin-bottom:24px}.activity-detail__title{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--ink)}.activity-detail__date{font-size:14px;color:var(--ink-muted)}.activity-detail__stats{display:flex;flex-wrap:wrap;gap:16px 24px;margin-bottom:24px;padding:16px;background:var(--surface-2);border-radius:6px}.activity-detail__stat{display:flex;flex-direction:column;gap:4px}.activity-detail__stat-label{font-size:12px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0}.activity-detail__stat-value{font-size:20px;font-weight:600;color:var(--ink)}.activity-detail__stat-unit{font-size:12px;font-weight:400;color:var(--ink-muted);margin-left:2px}.activity-detail__section{margin-bottom:24px}.activity-detail__section-title{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0}.activity-detail__upload-status{display:flex;flex-direction:column;gap:8px}.activity-detail__upload-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--surface-2);border-radius:4px}.activity-detail__upload-row>span:first-child{flex:1;font-size:14px}.activity-detail__upload-btn{background:var(--accent-ink);border:none;color:#fff;padding:6px 12px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .15s}.activity-detail__upload-btn:hover:not(:disabled){background:var(--accent)}.activity-detail__upload-btn:disabled{opacity:.5;cursor:not-allowed}.activity-detail__actions{display:flex;gap:12px}.activity-detail__action-btn{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .15s,border-color .15s}.activity-detail__action-btn:hover{background:var(--surface-2);border-color:var(--line-strong)}.activity-detail__action-btn svg{fill:currentColor}@media(max-width:768px){.activity-list-container{flex-direction:column}.activity-list{flex:none;max-height:300px}.activity-detail-panel{flex:1;min-height:200px}}.mmp-chart{background:var(--surface-2);border-radius:6px;padding:12px}.mmp-chart__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.mmp-chart__title{font-size:12.8px;font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0}.mmp-chart__legend{display:flex;gap:12px}.mmp-chart__legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-muted)}.mmp-chart__svg{display:block;width:100%;height:auto}.mmp-chart__footer{display:flex;gap:16px;margin-top:8px}.mmp-chart__ftp-note{font-size:12px;color:var(--ink-muted)}.mmp-chart__ftp-note strong{color:var(--ink)}.ride-impact__tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.ride-impact__tile{display:flex;flex-direction:column;gap:2px;padding:12px;background:var(--surface-2);border-radius:6px}.ride-impact__label{font-size:12px;color:var(--ink-muted);text-transform:uppercase}.ride-impact__label abbr{text-decoration:none;opacity:.7}.ride-impact__value{font-size:22px;font-weight:600;color:var(--ink)}.ride-impact__delta{font-size:13px;font-weight:600;color:var(--accent-ink)}.ride-impact__line{margin:0 0 12px;font-size:14px;color:var(--ink-muted)}.ride-impact__bests{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}.ride-impact__bests li{padding:4px 10px;border-radius:999px;background:var(--accent-soft);font-size:13px;color:var(--ink)}.pg-focus{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;color:var(--ink-muted)}.pg-focus__clear{background:none;border:none;color:var(--accent-ink);cursor:pointer;font-size:13px;text-decoration:underline}.pg-chart__mark line{stroke:var(--accent-ink);stroke-width:1.5;stroke-dasharray:3 3}.pg-chart__mark circle{fill:var(--accent-ink)}.pg-chart__mark text{fill:var(--accent-ink);font-size:10px;font-weight:600}@media(max-width:768px){.activity-list{max-height:220px}}.rg{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.rg-card{margin:0;padding:12px;background:var(--surface-2);border-radius:6px}.rg-card__title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:12.8px;font-weight:600;color:var(--ink-muted);text-transform:uppercase}.rg-note{font-weight:400;text-transform:none}.rg-legend{display:flex;gap:12px;font-weight:400;text-transform:none;font-size:12px}.rg-legend__item:before{content:"";display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle;background:var(--ink)}.rg-legend__item--hr:before{background:var(--accent-ink)}.rg-svg{display:block;width:100%;height:auto}.rg-grid{stroke:var(--line);stroke-width:.5}.rg-tick{fill:var(--ink-faint);font-size:9px}.rg-tick--hr,.rg-tick--ftp{fill:var(--accent-ink)}.rg-ftp{stroke:var(--accent-ink);stroke-width:1;stroke-dasharray:5 3;opacity:.6}.rg-power-area{fill:var(--ink);opacity:.12}.rg-power{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round}.rg-hr{fill:none;stroke:var(--accent-ink);stroke-width:1.5;stroke-linejoin:round}.rg-zones{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.rg-zone{display:grid;grid-template-columns:120px 1fr 80px;align-items:center;gap:8px;font-size:13px}.rg-zone__name{color:var(--ink);white-space:nowrap}.rg-zone__track{height:10px;background:var(--surface);border-radius:5px;overflow:hidden}.rg-zone__fill{display:block;height:100%;border-radius:5px}.rg-zone__time{text-align:right;color:var(--ink)}.rg-zone__pct{color:var(--ink-muted)}.rg-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.rg-tile{display:flex;flex-direction:column;gap:2px;padding:10px;background:var(--surface);border-radius:6px}.rg-tile__label{font-size:12px;color:var(--ink-muted);text-transform:uppercase}.rg-tile__value{font-size:22px;font-weight:600;color:var(--ink)}.rg-tile__hint{font-size:12px;color:var(--ink-muted)}.rg-verdict{margin:10px 0 0;font-size:14px;color:var(--ink-muted)}@media(max-width:480px){.rg-zone{grid-template-columns:96px 1fr 68px}}.rn-table{width:100%;border-collapse:collapse;font-size:14px}.rn-table th,.rn-table td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--line);color:var(--ink);font-variant-numeric:tabular-nums}.rn-table thead th{font-size:12px;font-weight:500;color:var(--ink-muted);text-transform:uppercase}.rn-table tbody th{text-align:left;font-weight:500}.rn-table--laps th:first-child,.rn-table--laps td:first-child{text-align:left}.rn-unit{color:var(--ink-muted);font-size:12px}.rn-facts{margin:10px 0 0;font-size:13px;color:var(--ink-muted)}.rn-laps-title{margin-top:24px}.rn-scroll{overflow-x:auto}.device-connection{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;cursor:pointer;transition:background-color .15s,border-color .15s}.device-connection:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}.device-connection:disabled{opacity:.6;cursor:not-allowed}.device-connection__indicator{width:10px;height:10px;border-radius:50%;background:var(--surface);transition:background-color .2s}.device-connection--disconnected .device-connection__indicator{background:var(--ink-faint)}.device-connection--connecting .device-connection__indicator{background:var(--accent-ink);animation:pulse 1s infinite}.device-connection--connected .device-connection__indicator{background:var(--success)}.device-connection__label{font-size:14px;font-weight:500;color:var(--ink)}.device-connection__status{font-size:12px;color:var(--ink-muted);margin-left:auto}.device-connection--compact{padding:4px;background:transparent;border:none}.device-connection--compact .device-connection__indicator{width:8px;height:8px}.connection-indicator{display:inline-block;width:8px;height:8px;border-radius:50%}.connection-indicator--disconnected{background:var(--ink-faint)}.connection-indicator--connecting{background:var(--accent-ink);animation:pulse 1s infinite}.connection-indicator--connected{background:var(--success)}.ant-scanner-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.ant-scanner{background:var(--surface);border-radius:12px;width:90%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0006}.ant-scanner__header{padding:20px 24px;border-bottom:1px solid var(--line)}.ant-scanner__title{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--ink)}.ant-scanner__status{font-size:14px;color:var(--ink-muted)}.ant-scanner__list{flex:1;overflow-y:auto;padding:16px;min-height:200px}.ant-scanner__searching{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--ink-muted)}.ant-scanner__spinner{width:40px;height:40px;border:3px solid var(--line);border-top-color:var(--accent-ink);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.ant-scanner__hint{font-size:12px;opacity:.7;margin-top:8px}.ant-scanner__device{display:flex;align-items:center;gap:16px;width:100%;padding:12px 16px;background:var(--surface-2);border:2px solid transparent;border-radius:8px;cursor:pointer;margin-bottom:8px;transition:background-color .15s,border-color .15s;text-align:left}.ant-scanner__device:hover{background:var(--surface-2)}.ant-scanner__device--selected{border-color:var(--accent-ink);background:var(--surface-2)}.ant-scanner__device-protocol{padding:2px 6px;background:var(--ink-muted);color:#fff;font-size:10px;font-weight:700;border-radius:3px}.ant-scanner__device-number{font-weight:600;color:var(--ink);min-width:60px}.ant-scanner__device-type{font-size:14px;color:var(--ink-muted);flex:1}.ant-scanner__actions{display:flex;gap:12px;padding:16px 24px;border-top:1px solid var(--line)}.ant-scanner__btn{flex:1;padding:12px 16px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .15s}.ant-scanner__btn--cancel{background:var(--surface-2);color:var(--ink)}.ant-scanner__btn--cancel:hover{background:var(--surface-2)}.ant-scanner__btn--pair{background:var(--accent-ink);color:#fff}.ant-scanner__btn--pair:hover:not(:disabled){background:var(--accent)}.ant-scanner__btn--pair:disabled{opacity:.5;cursor:not-allowed}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.recording-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:16px;background-color:#fe340b26;border:1px solid rgba(254,52,11,.35)}.recording-badge__dot{width:8px;height:8px;border-radius:50%;background-color:var(--danger);flex-shrink:0;animation:rec-pulse 1.4s ease-in-out infinite}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.25}}.recording-badge__time{font-size:12.8px;font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--font-mono);color:var(--danger);letter-spacing:0}.app-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--space-6);height:var(--top-nav-height);padding:var(--space-3) var(--space-8) 0;background-color:var(--bg)}.top-navigation{position:sticky;top:0;z-index:50}.app-navigation__mark{justify-self:start;padding:0;border:0;background:none;font:800 18px/24px var(--font-sans);letter-spacing:0;color:var(--ink);white-space:nowrap;cursor:pointer}.app-navigation__mark:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:var(--radius-xs)}.app-navigation__mark .wordmark{letter-spacing:-.01em}.wordmark{display:inline-flex;align-items:baseline}.wordmark__o{width:.72em;height:.72em;margin-left:-.03em;align-self:baseline;transform:translateY(.085em);overflow:visible;color:var(--accent-ink)}.app-navigation__main,.mobile-navigation{background:var(--surface);border:1px solid var(--line)}.app-navigation__main{display:flex;gap:2px;padding:4px;border-radius:var(--radius-full)}.app-navigation__right{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);min-width:0}.nav-tab{display:flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);border:0;border-radius:var(--radius-full);background:none;color:var(--ink-muted);font:500 14px/20px var(--font-sans);cursor:pointer;transition:color .15s,background-color .15s}.nav-tab:hover{color:var(--ink)}.nav-tab[aria-current=page]{color:var(--ink);background:color-mix(in srgb,var(--ink) 12%,transparent)}.nav-tab[aria-current=page] .ip-icon{color:var(--accent-ink)}.navbar-connections{display:flex;align-items:center;gap:var(--space-3)}.device-selector{position:relative}.device-selector__trigger{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);width:48px;height:32px;padding:0;border:1px solid var(--line-strong);border-radius:var(--radius-full);background:transparent;color:var(--ink);font:500 13px/16px var(--font-sans);cursor:pointer}.device-selector__trigger .ip-icon{width:18px;height:18px}.device-selector__label{display:none}.device-selector__trigger:hover,.device-selector__trigger[aria-expanded=true]{border-color:var(--ink-muted);background:var(--surface-2)}.device-selector__trigger:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.device-selector__trigger--no-trainer{position:relative;border-color:var(--accent-ink);color:var(--accent-ink);animation:device-ring 2s ease-out infinite}.device-selector__trigger--no-trainer .ip-icon{animation:device-wiggle 2s ease-in-out infinite}.device-selector__trigger--searching{border-color:var(--accent-ink)}.device-selector__trigger--searching .ip-icon{color:var(--accent-ink);animation:ip-pulse 1.2s ease-in-out infinite}@keyframes device-ring{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%,to{box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 0%,transparent)}}@keyframes device-wiggle{0%,60%,to{transform:rotate(0)}70%{transform:rotate(-14deg)}80%{transform:rotate(12deg)}90%{transform:rotate(-6deg)}}@media(prefers-reduced-motion:reduce){.device-selector__trigger--no-trainer,.device-selector__trigger--no-trainer .ip-icon,.device-selector__trigger--searching .ip-icon{animation:none}}.device-selector__count{min-width:1ch;font:600 13px/16px var(--font-mono);font-variant-numeric:tabular-nums}.device-selector__panel{position:absolute;z-index:30;top:calc(100% + var(--space-2));right:0;display:flex;flex-direction:column;gap:var(--space-2);width:min(320px,calc(100vw - 32px));max-height:calc(100dvh - 80px);overflow-y:auto;padding:var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sheet)}.device-selector__panel[hidden]{display:none}.device-selector__panel .ip-device{width:100%;min-height:44px;height:auto;padding:var(--space-2);border-radius:var(--radius-sm)}.device-selector__panel .ip-device__dot{width:6px;height:6px}.device-selector__panel .ip-device__state{margin-left:auto}.device-selector__panel .ip-device:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.navbar-recording-badge{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-full);background:transparent;color:var(--danger);cursor:pointer}.navbar-recording-badge:hover{border-color:var(--line-strong)}.navbar-recording-badge:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.navbar-recording-badge__dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--danger);flex-shrink:0}.navbar-recording-badge--paused{color:var(--ink-muted)}.navbar-recording-badge--paused .navbar-recording-badge__dot{background-color:var(--ink-faint)}.navbar-recording-badge__time{font:500 12px/16px var(--font-mono);letter-spacing:0;font-variant-numeric:tabular-nums}.navbar-user-badge{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--radius-full);background:none;cursor:pointer}.navbar-user-badge:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.navbar-user-badge__avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-full);border:1px solid var(--line-strong);color:var(--ink);font:600 13px/1 var(--font-sans);transition:border-color .12s}.navbar-user-badge:hover .navbar-user-badge__avatar{border-color:var(--ink)}.mobile-status-bar{display:none;position:fixed;top:0;left:0;right:0;z-index:40;align-items:center;justify-content:space-between;height:48px;padding:0 var(--space-4);background-color:var(--bg);border-bottom:1px solid var(--line)}.mobile-navigation{display:none;position:fixed;left:var(--space-3);right:var(--space-3);bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px));z-index:100;height:60px;padding:4px;gap:2px;border-radius:var(--radius-full)}.mobile-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:var(--radius-full);background:none;color:var(--ink-muted);font:500 10px/12px var(--font-mono);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:color .15s,background-color .15s}.mobile-nav-item[aria-current=page]{color:var(--ink);background:color-mix(in srgb,var(--ink) 12%,transparent)}.mobile-nav-item[aria-current=page] .ip-icon{color:var(--accent-ink)}@media(min-width:769px)and (max-width:1024px){.app-navigation{gap:var(--space-3);padding:var(--space-3) var(--space-4) 0}.nav-tab{padding:0 var(--space-3)}.nav-tab__label{display:none}.nav-tab[aria-current=page] .nav-tab__label{display:inline}}@media(max-width:768px){.mobile-navigation,.mobile-status-bar{display:flex}.top-navigation{display:none}.navbar-connections{gap:var(--space-2)}.device-selector{position:static}.device-selector__panel{left:var(--space-4);right:var(--space-4);width:auto}}.toast-container{position:fixed;display:flex;flex-direction:column;gap:8px;z-index:1000;max-width:400px;pointer-events:none}.toast-container--top-right{top:16px;right:16px}.toast-container--top-left{top:16px;left:16px}.toast-container--bottom-right{bottom:16px;right:16px}.toast-container--bottom-left{bottom:16px;left:16px}.toast-container--top-center{top:16px;left:50%;transform:translate(-50%)}.toast-container--bottom-center{bottom:16px;left:50%;transform:translate(-50%)}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;background-color:var(--surface);border-radius:8px;box-shadow:0 4px 12px #0000004d;pointer-events:auto;animation:toast-enter .3s ease-out}@keyframes toast-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.toast__icon{font-size:20px}.toast--info .toast__icon{color:var(--ink-muted)}.toast--success .toast__icon{color:var(--success)}.toast--warning .toast__icon{color:var(--accent-ink)}.toast--error .toast__icon{color:var(--danger)}.toast__message{flex:1;color:var(--ink);font-size:14px}.toast__action{padding:4px 8px;background:none;border:1px solid var(--accent-ink);border-radius:4px;color:var(--accent-ink);font-size:12px;font-weight:500;cursor:pointer;transition:background-color .2s}.toast__action:hover{background-color:var(--accent-ink);color:var(--on-accent)}.toast__dismiss{padding:4px;background:none;border:none;color:var(--ink-muted);cursor:pointer;opacity:.7;transition:opacity .2s}.toast__dismiss:hover{opacity:1}.toast__dismiss .ip-icon{font-size:16px}.modal{width:fit-content;max-width:90vw;max-height:90vh;padding:0;overflow:hidden}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.modal__title{margin:0;font-size:18px;font-weight:600;color:var(--ink)}.modal__content{padding:20px;overflow-y:auto;max-height:calc(90vh - 64px)}.status-bar{display:flex;align-items:center;gap:16px;padding:4px 8px;font-size:12px}.status-bar__item{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px}.status-bar__item .ip-icon{font-size:16px}.status-bar__item--offline{background-color:var(--warning-bg, rgba(252, 192, 0, .2));color:var(--accent-ink)}.status-bar__item--recording{background-color:var(--error-bg, rgba(244, 68, 68, .2));color:var(--danger)}.status-bar__item--unsaved{background-color:var(--info-bg, rgba(0, 170, 255, .2));color:var(--ink-muted)}.status-bar__recording-dot{width:8px;height:8px;border-radius:50%;background-color:var(--danger);animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{opacity:1}50%{opacity:.3}}.status-indicator{display:flex;align-items:center;gap:8px}.status-indicator__icon{font-size:16px}.status-indicator__icon--offline{color:var(--accent-ink)}.status-indicator__dot{width:8px;height:8px;border-radius:50%}.status-indicator__dot--recording{background-color:var(--danger);animation:recording-pulse 1.5s ease-in-out infinite}@media(max-width:768px){.toast-container{left:16px;right:16px;max-width:none}.modal{max-width:95vw;max-height:85vh}}.profile-selector-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--bg);color:var(--ink)}.profile-selector-panel{display:flex;flex-direction:column;gap:var(--space-6);width:100%;max-width:360px;text-align:center}.profile-selector-head{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.profile-selector-tagline{margin:0;color:var(--ink-muted);font:400 16px/24px var(--font-sans)}.profile-selector-mark{margin:0;font:800 clamp(40px,9vw,64px)/1 var(--font-sans);letter-spacing:0;color:var(--ink)}.profile-selector-user-list{display:flex;flex-wrap:wrap;gap:var(--space-3);max-height:50vh;overflow-y:auto}.profile-selector-user-item{display:flex;align-items:center;gap:var(--space-3);min-width:160px;padding:var(--space-2) var(--space-6) var(--space-2) var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius-full);background:transparent;color:var(--ink);cursor:pointer;transition:border-color .12s,background-color .12s}.profile-selector-user-item:hover{border-color:var(--ink);background:var(--surface)}.profile-selector-user-item:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.profile-selector-avatar{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--radius-full);background:var(--accent);color:var(--on-accent);font:700 18px/1 var(--font-sans)}.profile-selector-user-name{font:600 17px/24px var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.profile-selector-account{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-6);border-top:1px solid var(--line);animation:profile-selector-unfold .2s ease-out}@keyframes profile-selector-unfold{0%{opacity:0;translate:0 -4px}}.profile-selector-free-ride{display:flex;flex-direction:column;gap:var(--space-3)}.profile-selector-free-ride-hint{margin:0;color:var(--ink-faint);font:400 13px/18px var(--font-sans)}.profile-selector-divider{margin-bottom:var(--space-1);color:var(--ink);font:600 15px/20px var(--font-sans)}.profile-selector-signin{margin:0;color:var(--ink-muted);font:400 14px/20px var(--font-sans)}.profile-selector-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2) var(--space-6);margin-top:var(--space-2);font:400 13px/18px var(--font-sans)}.profile-selector-link{padding:var(--space-1) 0;border:0;background:none;color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer;text-underline-offset:3px}.profile-selector-link:hover{text-decoration:underline}.profile-selector-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-xs)}.profile-selector-link--quiet{color:var(--ink-muted);font-weight:400}.browser-support-notice{position:relative;z-index:10001;flex-shrink:0;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink);font:400 14px/20px var(--font-sans)}.browser-support-notice__text{flex:1;display:flex;flex-direction:column;gap:2px}.browser-support-notice__title{font-weight:700}.browser-support-notice__body{color:var(--ink-muted)}.browser-support-notice__dismiss{flex:none;min-height:44px;padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-full);background:transparent;color:inherit;font:600 14px/20px var(--font-sans);cursor:pointer}.browser-support-notice__dismiss:hover{border-color:var(--ink)}.browser-support-notice__dismiss:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(max-width:600px){.browser-support-notice{flex-direction:column;align-items:stretch}}.guest-prompt{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-md, 8px);background:var(--surface-2);color:var(--ink);font:400 14px/20px var(--font-sans)}.guest-prompt__text{flex:1;display:flex;flex-direction:column;gap:2px}.guest-prompt__title{font-weight:700}.guest-prompt__body{color:var(--ink-muted);max-width:60ch}.guest-prompt__actions{flex:none;display:flex;flex-wrap:wrap;gap:var(--space-2)}@media(max-width:600px){.guest-prompt{flex-direction:column;align-items:stretch}.guest-prompt__actions{justify-content:flex-start}}.legal-links{margin:var(--space-4) 0 0;text-align:center;font-size:13px;color:var(--ink-faint)}.legal-links a{color:inherit;text-decoration:underline;text-underline-offset:2px}.legal-links a:hover{color:var(--ink)}.consent-row{display:flex;gap:var(--space-3);align-items:flex-start;font-size:13px;line-height:1.4;color:var(--ink-faint);text-align:left}.consent-row a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}#react-settings-page{overflow:hidden}.st-page{flex:1;min-height:0;overflow-y:auto;background:var(--bg);color:var(--ink);text-align:left}.st-head{width:100%;max-width:880px;margin:0 auto;padding:var(--space-8) var(--space-8) 0}.st-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.st-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.st-tabs::-webkit-scrollbar{display:none}.st-tab:first-child{margin-left:auto}.st-tab:last-child{margin-right:auto}.st-tab{position:relative;flex:none;height:44px;padding:0 var(--space-3);border:0;background:none;color:var(--ink-muted);font:500 14px/20px var(--font-sans);cursor:pointer;white-space:nowrap;transition:color .12s}.st-tab:hover,.st-tab[aria-current=page]{color:var(--ink)}.st-tab[aria-current=page]:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:-1px;height:2px;background:var(--accent-ink)}.st-body{width:100%;max-width:880px;margin:0 auto;padding:var(--space-6) var(--space-8) var(--space-12)}.st-panel{display:flex;flex-direction:column;gap:var(--space-8)}.st-group{display:flex;flex-direction:column}.st-group__title{margin:0;padding-bottom:var(--space-2);border-bottom:1px solid var(--line)}.st-group__intro{margin:var(--space-3) 0 0;max-width:60ch;font:400 14px/20px var(--font-sans);color:var(--ink-muted)}.st-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-6);min-height:64px;padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.st-row--end{justify-content:flex-end;border-bottom:0}.st-row__text{display:flex;flex-direction:column;gap:2px;min-width:0}.st-row__text--icon{flex-direction:row;align-items:center;gap:var(--space-3)}.st-row__stack{display:flex;flex-direction:column;gap:2px;min-width:0}.st-row__label{font:500 15px/20px var(--font-sans);color:var(--ink)}.st-row__hint{font:400 13px/18px var(--font-sans);color:var(--ink-muted)}.st-row__control{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.st-value{font:500 13px/16px var(--font-mono);color:var(--ink-muted)}.st-number{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.st-number__field .ip-field__input{flex:0 0 64px}.st-number__unit{min-width:20px}.st-number__actions{display:flex;gap:var(--space-1)}.st-select{min-width:200px}.st-add{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%}.st-add .ip-field{flex:1 1 220px;max-width:360px}.st-slots{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:var(--space-4);margin:var(--space-4) 0 var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface)}.st-slots__hero{display:flex;flex-direction:column;gap:var(--space-1)}.st-slots__hero b{font:700 56px/.9 var(--font-sans);font-stretch:75%;letter-spacing:-.03em}.st-slots__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.st-slots__cell{padding:var(--space-3) var(--space-2);border-radius:var(--radius-sm);background:var(--surface-2);font:500 11px/14px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);text-align:center;overflow-wrap:anywhere}.st-zones{display:flex;flex-direction:column}.st-zones__head,.st-zones__row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);gap:var(--space-4);align-items:center}.st-zones--two .st-zones__head,.st-zones--two .st-zones__row{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.st-zones__head{padding:var(--space-3) 0 var(--space-2);font:500 11px/14px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.st-zones__row{min-height:48px;border-bottom:1px solid var(--line)}.st-zones__name{display:flex;align-items:center;gap:var(--space-2);min-width:0;font:500 15px/20px var(--font-sans);text-transform:capitalize}.st-zones__dot{width:10px;height:10px;border-radius:var(--radius-full);flex:none}.st-zones__z{font:500 12px/16px var(--font-mono);color:var(--ink-muted)}.st-zones__num{font:500 14px/20px var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink)}.st-conn__icon{width:32px;height:32px;border-radius:var(--radius-sm);object-fit:contain;flex:none}.st-conn__icon--blank{display:grid;place-items:center;background:var(--surface-2);color:var(--ink-muted)}.st-conn__state{display:inline-flex;align-items:center;gap:6px;font:500 11px/14px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.st-conn__state:before{content:"";width:8px;height:8px;border-radius:var(--radius-full);background:var(--ink-faint)}.st-conn__state--on:before{background:var(--success)}.st-avatar{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--radius-full);border:1px solid var(--line-strong);font:600 15px/1 var(--font-sans);color:var(--ink)}.st-row--current .st-avatar{border-color:var(--ink);background:var(--ink);color:var(--bg)}.st-help{display:flex;flex-direction:column;gap:var(--space-6);max-width:64ch}.st-help section{display:flex;flex-direction:column;gap:var(--space-2)}.st-help h3{margin:0;font:600 17px/24px var(--font-sans);color:var(--ink)}.st-help p{margin:0;font:400 16px/26px var(--font-sans);color:var(--ink-muted)}.st-help em,.st-help strong{color:var(--ink);font-style:normal;font-weight:600}@media(max-width:768px){.st-head{padding:var(--space-6) var(--space-4) 0}.st-tabs{margin:0 calc(-1 * var(--space-4));padding:0 var(--space-2)}.st-body{padding:var(--space-4) var(--space-4) var(--space-8)}.st-row{align-items:flex-start}.st-row__control{width:100%;justify-content:flex-start}.st-select{width:100%}.st-slots{grid-template-columns:auto minmax(0,1fr)}.st-slots__hero b{font-size:40px}.st-slots__cell{padding:var(--space-2) var(--space-1);font-size:10px;letter-spacing:.02em}.st-zones__head,.st-zones__row{gap:var(--space-2)}}.st-zones__input{width:88px}.st-zones__problem{margin:var(--space-3) 0 0;font:400 14px/20px var(--font-sans);color:var(--danger)}.st-zones__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.st-delete{display:flex;flex-direction:column}.st-delete__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.st-hr__limits{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2)}.pg-ride-dialog{width:min(640px,calc(100vw - 48px));max-height:calc(100dvh - 64px)}.pg-ride-dialog__close{display:flex;justify-content:flex-end}.pg-ride-dialog .pg-preview{padding-top:0;border-top:0}.pg-ride-dialog .ip-title{overflow-wrap:anywhere}.pg-ride-dialog .pg-preview__actions{justify-content:flex-end}.calendar__scheduled-name{background:transparent;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}@media(max-width:768px){.pg-ride-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;padding:16px;border:0;border-radius:0}}#react-dashboard{overflow:hidden}.pg-page{flex:1;min-height:0;overflow-y:auto;background:var(--bg);color:var(--ink);text-align:left}.pg-head{width:100%;max-width:1280px;margin:0 auto;padding:var(--space-6) var(--space-8) var(--space-4)}.pg-body{display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:1280px;margin:0 auto;padding:0 var(--space-8) var(--space-8)}.pg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.pg-overview{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:auto auto;column-gap:var(--space-6);row-gap:var(--space-3);align-items:start}.pg-charts{display:grid;grid-row:span 2;grid-template-rows:subgrid;min-width:0}.pg-chart-content{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.pg-upcoming{display:grid;grid-row:span 2;grid-template-rows:subgrid;align-self:stretch;min-width:0;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.pg-upcoming__header{display:flex;flex-direction:column;gap:var(--space-2)}.pg-upcoming__list{align-self:start}.pg-upcoming__list{list-style:none;padding:0;margin:0;max-height:clamp(240px,calc(100dvh - 360px),560px);overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;overscroll-behavior-y:contain}.pg-upcoming__list:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.pg-upcoming__ride{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-3);border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.pg-upcoming__ride:hover{background:var(--surface-2)}.pg-upcoming__ride--selected{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.pg-upcoming__ride:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.pg-upcoming__date{font:500 11px/16px var(--font-mono);color:var(--ink-muted)}.pg-upcoming__name{font:600 14px/20px var(--font-sans);overflow-wrap:anywhere}.pg-upcoming__meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);font:400 11px/16px var(--font-sans);color:var(--ink-muted)}.pg-upcoming__meta>span{white-space:nowrap}.pg-upcoming__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.pg-upcoming .pg-upcoming__actions .ip-btn{min-width:0;padding-inline:var(--space-2);font-size:12px}.pg-upcoming .pg-preview{padding-top:var(--space-4)}.pg-upcoming .pg-preview--inline{gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);border-top:0;border-bottom:1px solid var(--line);background:var(--accent-soft)}.pg-preview--inline .pg-preview__actions{justify-content:flex-end}.pg-preview--inline .pg-preview__actions:empty{display:none}.pg-upcoming__actions{padding-bottom:var(--space-2);border-bottom:1px solid var(--line)}.pg-upcoming .pg-preview .ip-title{font-size:18px;line-height:24px;overflow-wrap:anywhere}.pg-card,.pg-calendar{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.pg-card__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4)}.pg-card__title{margin:0;font:600 17px/24px var(--font-sans);color:var(--ink)}.pg-card__value{margin-left:var(--space-1);font:600 13px/16px var(--font-mono);color:var(--ink);letter-spacing:0}.pg-card__empty{margin:0;font:400 14px/20px var(--font-sans);color:var(--ink-muted)}.pg-form{display:flex;align-items:flex-start;align-self:stretch}.pg-form__metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);min-width:0;width:100%}.pg-form__metrics .ip-metric{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.pg-form__metrics .ip-metric:nth-child(4){border-color:color-mix(in srgb,var(--accent-ink) 40%,var(--line))}.pg-form .pg-form__metrics .ip-metric__value{font-size:24px;line-height:28px}.pg-form__metrics .ip-label{font-size:10px;line-height:16px;letter-spacing:0}.pg-form .pg-form__metrics .ip-metric__value{letter-spacing:0}.pg-chart{display:block;width:100%;height:auto;overflow:visible}.pg-chart__grid{stroke:var(--line);stroke-width:1}.pg-chart__zero{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:2 3}.pg-chart__tick{fill:var(--ink-muted);font:500 10px var(--font-mono);letter-spacing:.02em}.pg-chart__end{fill:var(--ink-muted);font:600 11px var(--font-mono)}.pg-chart__end--main{fill:var(--ink)}.pg-chart__series{fill:none;stroke-linejoin:round;stroke-linecap:round}.pg-chart__series--main{stroke:var(--ink);stroke-width:2}.pg-chart__series--muted{stroke:var(--ink-muted);stroke-width:1.5}.pg-chart__series--dashed{stroke:var(--line-strong);stroke-width:1.5;stroke-dasharray:5 4}.pg-chart__bar{fill:var(--profile)}.pg-chart__bar--now{fill:var(--accent)}.pg-chart__dot{fill:var(--surface);stroke:var(--ink);stroke-width:2}.pg-legend{display:flex;flex-wrap:wrap;gap:var(--space-4)}.pg-legend__item{display:inline-flex;align-items:center;gap:var(--space-2);font:500 11px/14px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.pg-legend__swatch{width:18px;height:0;border-top:2px solid var(--ink)}.pg-legend__swatch--muted{border-top:1.5px solid var(--ink-muted)}.pg-legend__swatch--dashed{border-top:1.5px dashed var(--line-strong)}.pg-calendar{gap:var(--space-6)}.activity-calendar{display:flex;flex-direction:column;gap:var(--space-3)}.calendar__header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.calendar__nav{display:flex;gap:var(--space-2);margin-left:auto}.calendar__nav .ip-iconbtn{width:64px;height:36px;border-radius:var(--radius-full)}.calendar__day-headers,.calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar__day-header{padding:0 var(--space-2) var(--space-2);font:500 11px/14px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.calendar__grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar__day{position:relative;display:flex;flex-direction:column;gap:var(--space-1);min-height:84px;min-width:0;padding:var(--space-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background-color .12s}.calendar__day--empty{background:transparent}.calendar__day--drag-over{background:var(--accent-soft)}.calendar__day-number{font:500 12px/16px var(--font-mono);color:var(--ink-muted);font-variant-numeric:tabular-nums}.calendar__day--today .calendar__day-number{display:inline-grid;place-items:center;width:22px;height:22px;margin:-3px 0 0 -3px;border-radius:var(--radius-full);background:var(--ink);color:var(--bg);font-weight:600}.calendar__activity-dots{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.calendar__activity-dot{display:inline-block;flex:none;width:8px;height:8px;padding:0;border:0;border-radius:var(--radius-full);background:var(--ink);cursor:pointer}.calendar__activity-dot--1{width:6px;height:6px;background:var(--ink-muted)}.calendar__activity-dot--2{width:8px;height:8px}.calendar__activity-dot--3{width:11px;height:11px}.calendar__activity-dot--4{width:14px;height:14px}button.calendar__activity-dot:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.calendar__activity-dot-more{font:500 10px/12px var(--font-mono);color:var(--ink-muted)}.calendar__scheduled-item{display:flex;align-items:center;gap:2px;min-width:0;padding:2px 2px 2px 6px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--ink);font:500 11px/16px var(--font-sans);cursor:grab}.calendar__scheduled-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar__scheduled-remove{display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:var(--radius-full);background:transparent;color:var(--ink-muted);cursor:pointer;opacity:0;transition:opacity .12s}.calendar__scheduled-item:hover .calendar__scheduled-remove,.calendar__scheduled-remove:focus-visible{opacity:1}.calendar__scheduled-remove:hover{color:var(--ink);background:var(--surface-2)}.calendar__legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.calendar__legend-item{display:inline-flex;align-items:center;gap:var(--space-2);font:400 13px/16px var(--font-sans);color:var(--ink-muted)}.calendar__legend-item .calendar__activity-dot{cursor:default}.calendar__legend-planned{width:18px;height:10px;border-radius:3px;background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-ink)}.pg-preview{display:flex;flex-direction:column;gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--line)}.pg-preview__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.pg-preview__text{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.pg-preview__facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-1);font:400 14px/20px var(--font-sans);color:var(--ink-muted);font-variant-numeric:tabular-nums}.pg-preview__actions{display:flex;align-items:center;gap:var(--space-2)}@media(min-width:769px){.pg-page--calendar{display:flex;flex-direction:column}.pg-page--calendar .pg-head{flex:none;padding-top:var(--space-4);padding-bottom:var(--space-3)}.pg-page--calendar .pg-body{flex:1;min-height:0;padding-bottom:var(--space-4)}.pg-page--calendar .pg-overview{flex:1;min-height:0;grid-template-rows:auto minmax(0,1fr)}.pg-page--calendar .pg-charts{min-height:0}.pg-page--calendar .pg-calendar{min-height:0;height:100%}.pg-page--calendar .activity-calendar{display:grid;grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0;gap:var(--space-2)}.pg-page--calendar .calendar__grid{grid-auto-rows:minmax(56px,1fr);min-height:0}.pg-page--calendar .calendar__day{min-height:56px;padding:var(--space-1)}.pg-page--calendar .pg-upcoming{min-height:0}.pg-page--calendar .pg-upcoming__list{min-height:0;max-height:100%;height:100%}}@media(max-width:768px){.pg-head{padding:var(--space-6) var(--space-4) var(--space-4)}.pg-head .ip-display{font-size:34px;line-height:40px}.pg-body{padding:0 var(--space-4) var(--space-8);gap:var(--space-4)}.pg-grid{grid-template-columns:1fr;gap:var(--space-4)}.pg-overview{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:var(--space-4)}.pg-charts{display:flex;flex-direction:column;grid-row:auto;gap:var(--space-3)}.pg-upcoming{display:flex;flex-direction:column;grid-row:1;gap:var(--space-3)}.pg-card,.pg-calendar{padding:var(--space-4)}.pg-form__metrics .ip-metric{padding:var(--space-3)}.pg-form__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:var(--space-2)}.pg-form .pg-form__metrics .ip-metric__value{font-size:24px}.pg-form__metrics .ip-label{font-size:10px;line-height:14px;letter-spacing:0}.calendar__day{min-height:56px;padding:var(--space-1)}.calendar__day-header{padding:0 var(--space-1) var(--space-1);font-size:10px;letter-spacing:.04em}.calendar__scheduled-item{padding:2px 4px;font-size:10px}.calendar__scheduled-remove{display:none}}.calendar__scheduled-item--done{opacity:.65}.calendar__scheduled-done{color:var(--success);font-weight:700}.pg-upcoming__done{color:var(--success);font-weight:600}.ip-num{font-variant-numeric:tabular-nums;font-stretch:75%}.ip-label{font-family:var(--font-mono);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.ip-display{margin:0;font:800 44px/48px var(--font-sans);letter-spacing:-.025em;color:var(--ink)}.ip-title{margin:0;font:700 24px/30px var(--font-sans);letter-spacing:-.01em;color:var(--ink)}.ip-body{font:400 16px/24px var(--font-sans);color:var(--ink)}.ip-body-sm{font:400 14px/20px var(--font-sans);color:var(--ink-muted)}.ip-icon{display:inline-block;flex:none;vertical-align:middle;fill:none}:where(.ip-btn,.ip-iconbtn,.ip-seg button,.ip-step button,.ip-chip,.ip-row-title,.ip-tab):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ip-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;padding:0 var(--space-6);border-radius:var(--radius-full);border:1px solid transparent;font:600 14px/20px var(--font-sans);letter-spacing:.01em;cursor:pointer;transition:background-color .12s,border-color .12s,color .12s,transform .08s;white-space:nowrap;text-decoration:none}.ip-btn:active:not(:disabled){transform:scale(.98)}.ip-btn:disabled{cursor:not-allowed;opacity:.4}.ip-btn--lg{height:56px;padding:0 var(--space-8);font-size:16px}.ip-btn--block{display:flex;width:100%}.ip-btn--primary{background:var(--accent);color:var(--on-accent)}.ip-btn--primary:hover:not(:disabled){filter:brightness(1.06)}.ip-btn--secondary{background:transparent;color:var(--ink);border-color:var(--line-strong)}.ip-btn--secondary:hover:not(:disabled){border-color:var(--ink)}.ip-btn--ghost{background:transparent;color:var(--ink-muted)}.ip-btn--ghost:hover:not(:disabled){color:var(--ink);background:var(--surface)}.ip-btn--danger{background:transparent;color:var(--danger);border-color:var(--danger)}.ip-btn--danger:hover:not(:disabled){background:var(--surface)}.ip-iconbtn{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border-radius:var(--radius-full);border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;transition:background-color .12s,border-color .12s,transform .08s}.ip-iconbtn:active:not(:disabled){transform:scale(.96)}.ip-iconbtn:disabled{cursor:not-allowed;opacity:.4}.ip-iconbtn--sm{width:36px;height:36px}.ip-iconbtn--lg{width:64px;height:64px}.ip-iconbtn--primary{background:var(--accent);color:var(--on-accent)}.ip-iconbtn--secondary{border-color:var(--line-strong)}.ip-iconbtn--secondary:hover:not(:disabled){border-color:var(--ink)}.ip-iconbtn--ghost{color:var(--ink-muted)}.ip-iconbtn--ghost:hover:not(:disabled){color:var(--ink);background:var(--surface)}.ip-iconbtn--danger{color:var(--danger)}.ip-iconbtn--danger:hover:not(:disabled){background:var(--surface)}.ip-metric{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ip-metric--center{align-items:center;text-align:center}.ip-metric__value{display:flex;align-items:baseline;gap:var(--space-1);color:var(--ink);font-variant-numeric:tabular-nums;font-stretch:75%;white-space:nowrap}.ip-metric__num{font-weight:inherit}.ip-metric--xl .ip-metric__value{font-size:clamp(88px,12vw,152px);line-height:.9;font-weight:700;letter-spacing:-.03em}.ip-metric--lg .ip-metric__value{font-size:clamp(44px,5.4vw,72px);line-height:.95;font-weight:700;letter-spacing:-.02em}.ip-metric--md .ip-metric__value{font-size:36px;line-height:1;font-weight:600;letter-spacing:-.01em}.ip-metric__unit{font-family:var(--font-mono);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-stretch:100%}.ip-metric__sub{font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.04em;color:var(--ink-muted)}.ip-metric__sub em{font-style:normal;color:var(--accent-ink)}.ip-metric--empty .ip-metric__num{color:var(--ink-faint)}.ip-profile{position:relative;width:100%}.ip-profile svg{display:block;width:100%;height:100%;overflow:visible}.ip-profile .bar{fill:var(--profile)}.ip-profile .bar.done{fill:var(--profile-done)}.ip-profile .bar.now{fill:var(--accent)}.ip-profile .head{stroke:var(--ink);stroke-width:2}.ip-profile .ftp{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:2 4}.ip-profile .power{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round;opacity:.9}.ip-profile--interactive .bar{cursor:crosshair}.ip-profile__tip{position:absolute;bottom:100%;transform:translate(-50%,-6px);padding:4px 8px;border-radius:var(--radius-sm);background:var(--ink);color:var(--bg);font:500 11px/14px var(--font-mono);letter-spacing:.04em;white-space:nowrap;pointer-events:none}.ip-profile--empty{display:grid;place-items:center;color:var(--ink-faint);font:400 14px/20px var(--font-sans)}.ip-progress{position:relative;height:4px;border-radius:var(--radius-xs);background:var(--surface-2);overflow:hidden}.ip-progress>span{position:absolute;inset:0 auto 0 0;background:var(--accent-ink);border-radius:var(--radius-xs);transition:width .3s linear}.ip-tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--line);font:500 11px/14px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}.ip-tag--accent{border-color:transparent;background:var(--accent-soft);color:var(--accent-ink)}.ip-tag__dot{width:8px;height:8px;border-radius:var(--radius-full);flex:none}.ip-seg{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:3px;border-radius:var(--radius-sm);background:var(--surface-2)}.ip-seg button{height:34px;padding:0 var(--space-4);border:0;border-radius:4px;background:transparent;color:var(--ink-muted);font:500 12px/16px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap}.ip-seg button:hover{color:var(--ink)}.ip-seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.ip-chip{display:inline-flex;align-items:center;height:32px;padding:0 var(--space-3);border-radius:var(--radius-full);border:1px solid var(--line);background:transparent;color:var(--ink-muted);font:500 13px/16px var(--font-sans);cursor:pointer;white-space:nowrap;transition:border-color .12s,color .12s,background-color .12s}.ip-chip:hover{color:var(--ink);border-color:var(--line-strong)}.ip-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.ip-step{display:inline-grid;grid-template-columns:56px minmax(104px,1fr) 56px;align-items:center;height:56px;border:1px solid var(--line-strong);border-radius:var(--radius-full);overflow:hidden}.ip-step button{display:grid;place-items:center;height:100%;border:0;background:transparent;color:var(--ink);cursor:pointer}.ip-step button:hover:not(:disabled){background:var(--surface)}.ip-step button:disabled{color:var(--ink-faint);cursor:not-allowed}.ip-step output{text-align:center;font:700 28px/1 var(--font-sans);font-variant-numeric:tabular-nums;font-stretch:75%;color:var(--ink)}.ip-step output small{margin-left:4px;font:500 11px/1 var(--font-mono);letter-spacing:.08em;color:var(--ink-muted);font-stretch:100%;text-transform:uppercase}.ip-device{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3) 0 10px;border-radius:var(--radius-full);border:1px solid var(--line);background:transparent;color:var(--ink);font:500 13px/16px var(--font-sans);white-space:nowrap;cursor:pointer;transition:border-color .12s}.ip-device:hover{border-color:var(--line-strong)}.ip-device__dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--ink-faint);flex:none}.ip-device--connected .ip-device__dot{background:var(--success)}.ip-device--searching .ip-device__dot{background:transparent;box-shadow:inset 0 0 0 2px var(--accent-ink);animation:ip-pulse 1.2s ease-in-out infinite}.ip-device--off{color:var(--ink-muted);border-style:dashed;border-color:var(--line-strong)}.ip-device__state{font:500 11px/14px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}@keyframes ip-pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.ip-device--searching .ip-device__dot{animation:none}}.ip-search{display:flex;align-items:center;gap:var(--space-2);height:40px;min-width:0;padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-full);color:var(--ink-muted);background:transparent}.ip-search:focus-within{border-color:var(--ink)}.ip-search input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:var(--ink);font:400 14px/20px var(--font-sans)}.ip-search input::placeholder{color:var(--ink-faint)}:where(.ip-field){min-width:0}:where(.ip-labelled){display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ip-labelled__text{font:500 11px/14px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.ip-field{box-sizing:border-box;height:40px;padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-full);background:transparent;color:var(--ink);font:400 15px/20px var(--font-sans);transition:border-color .12s}.ip-field--sm{height:32px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:14px}.ip-field--lg{height:44px;font:700 20px/1 var(--font-sans)}.ip-field--num{font-variant-numeric:tabular-nums;font-stretch:75%;text-align:right}.ip-field--num input,input.ip-field--num{-moz-appearance:textfield}.ip-field--num ::-webkit-outer-spin-button,.ip-field--num ::-webkit-inner-spin-button,.ip-field--num::-webkit-outer-spin-button,.ip-field--num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ip-field:hover:not(:disabled,.ip-field--disabled,:focus-within){border-color:var(--ink-muted)}.ip-field:focus-visible,.ip-field--affix:has(>.ip-field__input:focus-visible){outline:2px solid var(--focus);outline-offset:2px;border-color:var(--ink)}.ip-field::placeholder,.ip-field__input::placeholder{color:var(--ink-faint);opacity:1}.ip-field:disabled,.ip-field--disabled{opacity:.4;cursor:not-allowed}.ip-field--affix{display:inline-flex;align-items:center;gap:var(--space-2)}.ip-field__input{flex:1 1 0;width:100%;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;color:inherit;font:inherit;text-align:inherit}.ip-field__input:focus-visible{outline:0}.ip-field__input:disabled{cursor:not-allowed}.ip-field__affix{display:inline-flex;flex:none;align-items:center;gap:var(--space-1);font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap;font-stretch:100%}.ip-field--affix>.ip-field__affix:first-child:has(>.ip-iconbtn:first-child){margin-left:calc(var(--space-3) * -1)}.ip-field--affix>.ip-field__affix:last-child:has(>.ip-iconbtn:last-child){margin-right:calc(var(--space-3) * -1)}.ip-field--area{height:auto;min-height:64px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);line-height:1.4;resize:vertical}.ip-select{padding-right:var(--space-8);appearance:none;cursor:pointer;text-align:left;background-image:linear-gradient(45deg,transparent 50%,var(--ink-muted) 50%),linear-gradient(135deg,var(--ink-muted) 50%,transparent 50%);background-position:right 20px center,right 15px center;background-size:5px 5px;background-repeat:no-repeat}.ip-select.ip-field--sm{padding-right:var(--space-6);background-position:right 13px center,right 8px center}.ip-select option{background:var(--surface);color:var(--ink)}:where(.ip-check){display:inline-flex;align-items:flex-start;gap:var(--space-2);color:var(--ink);font:400 14px/20px var(--font-sans);cursor:pointer}.ip-check input{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--ink);cursor:pointer}.ip-check input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}:where(.ip-check):has(input:disabled){opacity:.4;cursor:not-allowed}.ip-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-12) var(--space-4);color:var(--ink-muted)}.ip-empty__title{font:700 24px/30px var(--font-sans);color:var(--ink)}:where(.ip-dialog){margin:auto;width:min(440px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:var(--space-6);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sheet);text-align:left;overflow-y:auto;overscroll-behavior:contain;opacity:0;translate:0 8px;transition:opacity .18s ease-out,translate .18s ease-out,overlay .18s allow-discrete,display .18s allow-discrete}:where(.ip-dialog)[open]{opacity:1;translate:0 0}:where(.ip-dialog)::backdrop{background:#0000;transition:background-color .18s ease-out,overlay .18s allow-discrete,display .18s allow-discrete}:where(.ip-dialog)[open]::backdrop{background:#0009}@starting-style{:where(.ip-dialog)[open]{opacity:0;translate:0 8px}:where(.ip-dialog)[open]::backdrop{background:#0000}}html:has(.ip-dialog[open]){overflow:hidden}#home-page{background:var(--bg);overflow-y:auto}#react-ride-page{flex:1;min-width:0}.ride-page{min-height:100%;color:var(--ink);text-align:left}#react-ride-page:has(.ride-page--active){min-height:0}.ride-page--active{display:flex;flex-direction:column;height:100%;min-height:0}.ride-ready{display:flex;flex-direction:column;min-height:100%;padding:var(--space-6) var(--space-8) var(--space-8)}.ride-ready__top{display:flex;justify-content:flex-end}.ride-ready__hero{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--space-6);width:100%;max-width:960px;padding:var(--space-8) 0}.ride-ready__eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.ride-ready__name{margin:0;font:800 clamp(44px,7vw,88px)/.95 var(--font-sans);letter-spacing:-.035em;color:var(--ink);overflow-wrap:anywhere}.ride-ready__facts{display:flex;flex-wrap:wrap;gap:var(--space-6) var(--space-12)}.ride-ready__lede{margin:0;max-width:60ch;font:400 16px/24px var(--font-sans);color:var(--ink-muted)}.ride-ready__cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding-top:var(--space-2)}.ride-ready__countdown{color:var(--accent-ink)}.ride-ready__details summary{padding-block:var(--space-2);color:var(--ink-muted);font:500 14px/20px var(--font-sans);cursor:pointer}.ride-ready__details summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ride-ready__details[open] summary{margin-bottom:var(--space-2)}.ride-ready__hero--loaded{align-items:center;gap:var(--space-6);max-width:none;margin-inline:auto}.ride-ready__hero--loaded>.ride-ready__eyebrow{justify-content:center}.ride-ready__count{color:var(--ink-faint);font-variant-numeric:tabular-nums}.ride-ready__deck{display:flex;align-items:center;justify-content:center;gap:var(--space-6);width:100%}.ride-ready__card{--card-h: 456px;flex:0 1 680px;min-width:0;height:var(--card-h);box-sizing:border-box;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-8);border-radius:var(--radius-md);background:var(--surface)}.ride-ready__card>.ride-ready__lede{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;flex:none}.ride-ready__card>.ride-ready__facts{margin-top:auto}.ride-ready__card>.ride-ready__scene{flex:1 1 auto;height:auto;min-height:120px}.ride-ready__card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.ride-ready__card .ride-ready__name{font-size:clamp(36px,5vw,56px)}.ride-ready__card .ride-ready__facts{gap:var(--space-4) var(--space-10, 40px)}.ride-ready__chart{min-width:0;flex:none}.ride-ready__hero--loaded>.ride-ready__cta{justify-content:center;padding-top:0}.ride-ready__card--from-next{animation:card-in-next .46s cubic-bezier(.34,1.56,.64,1) both}.ride-ready__card--from-prev{animation:card-in-prev .46s cubic-bezier(.34,1.56,.64,1) both}@keyframes card-in-next{0%{opacity:0;transform:translate(72px) rotate(2.5deg) scale(.96)}}@keyframes card-in-prev{0%{opacity:0;transform:translate(-72px) rotate(-2.5deg) scale(.96)}}:is(.ride-ready__card--from-next,.ride-ready__card--from-prev)>*{animation:card-text-in .36s .08s ease-out both}:is(.ride-ready__card--from-next,.ride-ready__card--from-prev)>.ride-ready__chart{animation:card-chart-in .5s .14s cubic-bezier(.34,1.4,.64,1) both;transform-origin:50% 100%}@keyframes card-text-in{0%{opacity:0;transform:translateY(6px)}}@keyframes card-chart-in{0%{opacity:0;transform:scaleY(0)}}.ride-ready__arrow.ip-iconbtn{flex:none;width:56px;height:56px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--ink) 16%,transparent),color-mix(in srgb,var(--ink) 3%,transparent) 60%);box-shadow:inset 0 1px #ffffff47,inset 0 -1px 1px #0000004d,0 10px 24px #00000059;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);color:var(--accent-ink);transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,border-color .18s}.ride-ready__arrow .ip-icon{width:28px;height:28px}.ride-ready__arrow .ip-icon path{stroke-width:2.6}.ride-ready__arrow.ip-iconbtn:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:inset 0 1px #ffffff52,inset 0 -1px 1px #0000004d,0 10px 28px #0006,0 0 18px color-mix(in srgb,var(--accent) 30%,transparent)}.ride-ready__arrow:hover .ip-icon{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 70%,transparent))}.ride-ready__arrow--next:hover{transform:translate(2px)}.ride-ready__arrow--prev:hover{transform:translate(-2px)}.ride-ready__arrow--next:active{transform:translate(6px) scale(.94)}.ride-ready__arrow--prev:active{transform:translate(-6px) scale(.94)}.ride-ready__pips{display:flex;justify-content:center;gap:6px;margin-top:calc(-1 * var(--space-2))}.ride-ready__pip{width:6px;height:6px;border-radius:var(--radius-full);background:var(--line-strong);transition:width .3s cubic-bezier(.34,1.56,.64,1),background-color .3s}.ride-ready__pip--on{width:20px;background:var(--ink)}@media(prefers-reduced-motion:reduce){.ride-ready__card--from-next,.ride-ready__card--from-prev,:is(.ride-ready__card--from-next,.ride-ready__card--from-prev)>*{animation:card-text-in .2s ease-out both}.ride-ready__arrow,.ride-ready__pip{transition:none}.ride-ready__arrow:is(:hover,:active){transform:none}}.ride-ready__card .ride-ready__scene{max-width:none;margin:0}@media(max-width:640px){.ride-ready{padding:var(--space-4)}.ride-ready__hero--loaded{gap:var(--space-4);padding:var(--space-2) 0}.ride-ready__deck{flex-wrap:wrap;gap:var(--space-3)}.ride-ready__card{--card-h: 440px;order:-1;flex-basis:100%;padding:var(--space-5, 20px)}.ride-ready__card>.ride-ready__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:var(--space-3)}.ride-ready__deck>.ip-iconbtn:first-child{margin-right:auto}.ride-ready__hero--loaded>.ride-ready__cta{display:grid;grid-template-columns:1fr 1fr;width:100%}.ride-ready__hero--loaded>.ride-ready__cta>.ip-btn--primary{grid-column:1 / -1}.ride-ready__hero--loaded>.ride-ready__cta>.ride-ready__countdown{grid-column:1 / -1;text-align:center}}.ride-samples{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4)}.ride-samples__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);margin:0;padding:0;list-style:none;max-width:760px}.ride-samples__item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:56px;padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s,background-color .12s}.ride-samples__item:hover{border-color:var(--ink);background:var(--surface)}.ride-samples__item:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ride-samples__name{font:700 16px/22px var(--font-sans)}.ride-samples__meta{color:var(--ink-muted);font:400 13px/18px var(--font-sans)}.ride-devices{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.ride-devices .ip-device>.ip-icon{display:none}.ride-view{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,3fr) minmax(56px,2fr) auto;gap:var(--space-4);padding:var(--space-4) var(--space-8) var(--space-4)}.ride-view--free{grid-template-rows:minmax(0,1fr) auto}#home-page:has(.ride-page--active){overflow:hidden}.ride-view__top{display:flex;flex-direction:column;gap:var(--space-3);min-height:0}.ride-view__profile{min-height:0}.ride-view__bottom{display:flex;flex-direction:column;justify-content:flex-end;gap:var(--space-3)}.ride-view__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-4);min-height:32px}.ride-view__intervals{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);min-width:0}.ride-view__now{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3)}.ride-view__now .ip-label{color:var(--ink)}.ride-view__now strong{font:600 15px/20px var(--font-sans);color:var(--ink)}.ride-view__up-next{display:flex;align-items:center;gap:var(--space-2);min-width:0;color:var(--ink-muted)}.ride-view__up-next .ip-icon{flex:none}.ride-view__next{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-2);letter-spacing:0}.ride-view__metrics{flex:1;min-height:0;container-type:size;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-content:center;align-items:center;gap:var(--space-8)}.ride-view__slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.ride-view__metrics{position:relative;padding:var(--space-4) var(--space-6) var(--space-6);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.ride-view__metrics:after{content:"";position:absolute;left:var(--space-6);right:var(--space-6);bottom:var(--space-3);height:2px;background:repeating-linear-gradient(90deg,var(--line-strong) 0 16px,transparent 16px 28px);opacity:.7;pointer-events:none}.ride-view--rolling .ride-view__metrics:after{animation:ride-lane .5s linear infinite}@keyframes ride-lane{to{background-position:-28px 0}}.ride-view__metrics>.ride-view__slots{align-self:stretch;align-content:center;padding-left:var(--space-8);border-left:1px solid var(--line)}.ride-view .ip-metric--xl .ip-metric__value{font-size:max(36px,min(calc((100cqh - 44px) / .92),26cqw,320px))}.ride-view .ip-metric--lg .ip-metric__value{font-size:max(18px,min(calc((50cqh - 32px) / .95),8cqw,120px))}.ride-view__controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3)}.ride-view__controls .ip-seg button{height:30px;padding:0 var(--space-3)}.ride-view__controls .ip-step{height:40px;grid-template-columns:40px minmax(88px,auto) 40px}.ride-view__controls .ip-step output{font-size:20px}.ride-slot{position:relative;min-width:0}.ride-slot__label{padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;border-bottom:1px dashed transparent}.ride-slot__label:hover{color:var(--ink);border-bottom-color:var(--line-strong)}.ride-slot__label:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ride-slot__picker{position:absolute;z-index:20;top:24px;left:0;display:flex;flex-direction:column;min-width:200px;max-height:320px;overflow-y:auto;padding:var(--space-1);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sheet)}.ride-slot__option{padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);font:400 14px/20px var(--font-sans);text-align:left;cursor:pointer}.ride-slot__option:hover{background:var(--surface-2);color:var(--ink)}.ride-slot__option[aria-selected=true]{color:var(--ink);font-weight:600}.ride-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--surface)}.ride-bar__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.ride-bar__top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 var(--space-3)}.ride-bar__name{font:600 14px/20px var(--font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ride-bar__time{font:500 12px/16px var(--font-mono);letter-spacing:.04em;color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ride-bar__rec{display:inline-flex;align-items:center;gap:6px;font:500 11px/14px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--danger)}.ride-bar__rec:before{content:"";width:8px;height:8px;border-radius:var(--radius-full);background:var(--danger)}.ride-bar__rec--paused{color:var(--ink-muted)}.ride-bar__rec--paused:before{background:var(--ink-faint)}.ride-bar__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.ride-bar__transport .ip-iconbtn{width:44px;height:44px;border-radius:var(--radius-full);border:1px solid var(--line-strong);background:transparent}.ride-bar__transport .ip-iconbtn:hover:not(:disabled){border-color:currentColor;background:var(--surface-2)}.ride-bar__transport .ip-iconbtn--danger{border-color:var(--danger);color:var(--danger)}.ride-bar__transport .ride-bar__pause{border-color:var(--accent);color:var(--accent)}.ride-bar__transport .ip-iconbtn:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.ride-finish{width:min(360px,calc(100vw - 32px))}.ride-finish__title{margin:0;font:700 24px/32px var(--font-sans);letter-spacing:0}.ride-finish__summary{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-4) 0 var(--space-6)}.ride-finish__name{font:600 15px/20px var(--font-sans);overflow-wrap:anywhere}.ride-finish__elapsed{font:500 12px/16px var(--font-mono);color:var(--ink-muted)}.ride-finish__actions{display:flex;flex-direction:column;gap:var(--space-3)}.ride-scene{display:block;width:100%;height:100%;overflow:hidden}.ride-scene__terrain{fill:var(--profile);opacity:.45;animation:ride-scroll calc(6s / var(--speed, 1)) steps(var(--steps, 48)) infinite}.ride-scene__ground{fill:var(--line-strong);animation:ride-ground calc(.33s / var(--speed, 1)) steps(10) infinite}.ride-scene{--scene-bg: var(--bg)}.ride-finder__stage .ride-scene{--scene-bg: var(--surface)}.ride-scene__ink{fill:var(--ink)}.ride-scene__pit{fill:var(--scene-bg)}.ride-scene__pit-rim{fill:var(--ink-muted)}.ride-scene__score{fill:var(--ink);font:600 4.5px var(--font-mono);letter-spacing:.2px;pointer-events:none;-webkit-user-select:none;user-select:none}.ride-scene[data-game]{cursor:pointer;touch-action:manipulation}.ride-scene[data-game=running] .ride-scene__ground,.ride-scene[data-game=fallen] .ride-scene__ground,.ride-scene[data-game=rising] .ride-scene__ground{animation:none}.ride-scene[data-game=fallen] .ride-scene__terrain,.ride-scene[data-game=rising] .ride-scene__terrain{animation-play-state:paused}.ride-scene[data-game=fallen] .ride-scene__frame-a,.ride-scene[data-game=fallen] .ride-scene__frame-b,.ride-scene[data-game=rising] .ride-scene__frame-a,.ride-scene[data-game=rising] .ride-scene__frame-b{animation:none;opacity:0}.ride-scene__helmet{fill:var(--accent)}.ride-scene__frame-a{animation:ride-pedal-a calc(.5s / var(--speed, 1)) step-end infinite}.ride-scene__frame-b{opacity:0;animation:ride-pedal-b calc(.5s / var(--speed, 1)) step-end infinite}.ride-scene__streak{fill:var(--ink);animation:ride-streak calc(.6s / var(--speed, 1)) steps(6) infinite}.ride-scene__note{fill:var(--accent);opacity:0;animation:ride-note 2.6s steps(10) infinite}.ride-scene--fast .ride-scene__rider{animation:ride-tuck calc(.3s / var(--speed, 1)) step-end infinite}@keyframes ride-scroll{to{transform:translate(var(--period, -48px))}}@keyframes ride-ground{to{transform:translate(-10px)}}@keyframes ride-pedal-a{0%{opacity:1}50%{opacity:0}}@keyframes ride-pedal-b{0%{opacity:0}50%{opacity:1}}@keyframes ride-streak{0%{transform:translate(6px);opacity:1}to{transform:translate(-18px);opacity:0}}@keyframes ride-note{0%{transform:translate(0);opacity:0}15%{opacity:1}70%{opacity:1}to{transform:translate(-14px,-4px);opacity:0}}@keyframes ride-tuck{50%{transform:translateY(1px)}}.ride-terrain-icon{display:block;width:48px;height:20px;fill:currentColor}@media(prefers-reduced-motion:reduce){.ride-scene__terrain,.ride-scene__ground,.ride-scene__frame-a,.ride-scene__frame-b,.ride-finder__body,.ride-scene__streak,.ride-scene--fast .ride-scene__rider,.ride-finder__option:before,.ride-view--rolling .ride-view__metrics:after{animation:none}.ride-scene__note{animation:none;opacity:1}}.ride-ready__scene{width:100%;max-width:560px;height:120px;margin-bottom:calc(var(--space-2) * -1);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.ride-finder{display:flex;flex-direction:column;gap:var(--space-6);width:100%;padding:var(--space-6) 0 var(--space-8)}.ride-finder__top{display:flex;align-items:center;gap:var(--space-4)}.ride-finder__top>.ip-btn{margin-left:auto}.ride-finder__pips{display:flex;gap:var(--space-1);margin:0;padding:0;list-style:none}.ride-finder__pips li{width:16px;height:4px;background:var(--surface-2)}.ride-finder__pips li[data-state=done]{background:var(--ink-muted)}.ride-finder__pips li[data-state=now]{background:var(--accent)}.ride-finder__stage{position:relative;height:clamp(168px,16vw,320px);padding:var(--space-4) var(--space-4) 0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.ride-finder__stage .ride-scene{height:100%}.ride-finder__hud{position:absolute;inset:var(--space-3) var(--space-4) auto;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6)}.ride-finder__hud b{margin-left:var(--space-1);font-weight:600;color:var(--ink)}.ride-finder__body{display:flex;flex-direction:column;gap:var(--space-4);animation:ride-finder-in .2s steps(4) both}@keyframes ride-finder-in{0%{opacity:0;transform:translateY(8px)}}.ride-finder__q{margin:0;font:800 clamp(32px,4.4vw,48px)/1.05 var(--font-sans);letter-spacing:-.03em;color:var(--ink)}.ride-finder__q:focus{outline:none}.ride-finder__note{margin:0;max-width:60ch;font:400 16px/24px var(--font-sans);color:var(--ink-muted)}.ride-finder__options{display:flex;flex-direction:column;gap:var(--space-2)}.ride-finder__options--grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3)}.ride-finder__options--three{grid-template-columns:repeat(3,minmax(0,1fr))}.ride-finder__option{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);min-width:0;padding:var(--space-4) var(--space-4) var(--space-4) var(--space-8);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s,background-color .12s}.ride-finder__option:before{content:"";position:absolute;left:var(--space-3);top:calc(50% - 5px);width:8px;height:10px;background:var(--accent);clip-path:polygon(0 0,100% 50%,0 100%);opacity:0}.ride-finder__option:hover,.ride-finder__option:focus-visible{border-color:var(--ink);background:var(--surface)}.ride-finder__option:hover:before,.ride-finder__option:focus-visible:before{opacity:1;animation:ride-blink .8s step-end infinite}.ride-finder__option:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ride-finder__option[aria-pressed=true]{border-color:var(--accent)}.ride-finder__option .ride-terrain-icon{margin-bottom:var(--space-2);color:var(--ink-muted)}.ride-finder__option:hover .ride-terrain-icon,.ride-finder__option:focus-visible .ride-terrain-icon{color:var(--ink)}.ride-finder__option-name{font:700 20px/26px var(--font-sans);letter-spacing:-.01em;overflow-wrap:anywhere}.ride-finder__option-hint{font:400 14px/20px var(--font-sans);color:var(--ink-muted)}@keyframes ride-blink{50%{opacity:0}}.ride-finder__ride{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,280px);align-items:center;gap:var(--space-6)}.ride-finder__ride-head{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.ride-finder__ride-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.ride-finder__ride-profile{display:block;min-width:0}.ride-finder__ftp{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.ride-finder__presets{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ride-finder__cta{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-top:var(--space-2)}.ride-finder__body--center{text-align:center}.ride-finder__body--center :is(.ride-finder__ftp,.ride-finder__presets,.ride-finder__cta){justify-content:center}.ride-finder__foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);border-top:1px solid var(--line);padding-top:var(--space-4)}@media(max-width:768px){#theme[data-riding]:has(#home-page.active) .mobile-navigation{display:none}#theme[data-riding]:has(#home-page.active) .app-pages{bottom:0}.ride-ready{padding:var(--space-4)}.ride-ready__top,.ride-devices{justify-content:flex-start}.ride-ready__facts{gap:var(--space-4) var(--space-8)}.ride-ready .ride-ready__hero{justify-content:flex-start;padding:var(--space-2) 0;gap:var(--space-4)}.ride-ready .ride-ready__hero--loaded{display:flex}.ride-ready__hero--loaded>.ride-ready__cta{align-self:stretch}.ride-ready__chart{padding:var(--space-3)}.ride-ready .ride-ready__name{font-size:32px;line-height:36px;letter-spacing:0}.ride-ready__cta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:0}.ride-ready__cta .ip-btn{min-width:0;padding-inline:var(--space-3);white-space:normal;height:auto;min-height:48px}.ride-ready__cta .ip-btn:only-child{grid-column:1 / -1}.ride-ready__countdown{grid-column:1 / -1}.ride-ready__scene{height:88px}.ride-finder{gap:var(--space-4);padding:var(--space-2) 0 var(--space-4)}.ride-finder__stage{height:120px;padding:var(--space-3) var(--space-3) 0}.ride-finder__hud{inset:var(--space-2) var(--space-3) auto;gap:var(--space-1) var(--space-4)}.ride-finder__q{font-size:28px;line-height:32px;letter-spacing:-.01em}.ride-finder__options--grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.ride-finder__option{padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6)}.ride-finder__option:before{left:var(--space-2)}.ride-finder__option-name{font-size:17px;line-height:22px}.ride-finder__ride{grid-template-columns:1fr;gap:var(--space-3)}.ride-finder__cta{display:grid}.ride-finder__cta .ip-btn{white-space:normal;height:auto;min-height:56px}.ride-view{padding:var(--space-3) var(--space-4) var(--space-4);gap:var(--space-3);grid-template-rows:minmax(0,2fr) minmax(56px,1fr) auto}.ride-view__intervals{gap:var(--space-1) var(--space-3)}.ride-view__now{gap:var(--space-1)}.ride-view__next{padding-block:var(--space-1)}.ride-view__metrics{grid-template-columns:1fr;gap:var(--space-2)}.ride-view__slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.ride-view__metrics{padding:var(--space-2) var(--space-3) 20px}.ride-view__metrics:after{left:var(--space-3);right:var(--space-3);bottom:var(--space-2)}.ride-view__metrics>.ride-view__slots{padding:var(--space-2) 0 0;border-left:0;border-top:1px solid var(--line)}.ride-view .ip-metric--xl .ip-metric__value{font-size:max(32px,min(calc((100cqh - 112px) / .9),30cqw))}.ride-view .ip-metric--lg .ip-metric__value{font-size:max(18px,min(calc(42cqh - 40px),8.5cqw))}.ride-view__controls{align-items:stretch}.ride-view__controls .ip-seg{flex:1 1 240px}.ride-view__controls .ip-step{flex:1 1 168px}.ride-bar__actions{flex-wrap:nowrap}}#react-workouts-page{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.wk-page{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;scrollbar-gutter:stable;background:var(--bg);color:var(--ink);text-align:left}.wk-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3);width:100%;max-width:1040px;margin:0 auto;padding:var(--space-8) var(--space-8) var(--space-4)}.wk-head__title{display:flex;align-items:center;gap:var(--space-4)}.wk-head__tools{display:flex;flex-wrap:nowrap;gap:var(--space-2)}.wk-head__tools .ip-btn{height:36px;padding-inline:var(--space-4)}.wk-page:not(.wk-page--builder) .wk-head{padding-bottom:0;border-bottom:1px solid var(--line);margin-bottom:var(--space-4)}.wk-tabs{display:flex;gap:var(--space-6);align-self:stretch}.wk-tab{position:relative;height:48px;padding:0;border:0;background:none;color:var(--ink-muted);font:600 15px/20px var(--font-sans);cursor:pointer;transition:color .12s}.wk-tab:hover,.wk-tab[aria-selected=true]{color:var(--ink)}.wk-tab[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--accent-ink)}.wk-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.wk-panels{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:0 var(--space-8) var(--space-12)}.wk-panel{display:none}.wk-panel--active{display:block}.wk-panel--builder.wk-panel--active{display:flex;flex-direction:column}.wk-page--builder .wk-head,.wk-page--builder .wk-panels{max-width:none}.wk-page--builder .wk-head{padding-top:var(--space-4);align-items:center}.wk-page--builder .wk-head .ip-display{font-size:24px;line-height:32px}.wk-page--builder .wk-panels{display:flex;flex-direction:column;min-height:0;padding-bottom:var(--space-4)}.wk-page--builder .wk-panel--builder.wk-panel--active{flex:1;min-height:0}.wk-filters{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-4)}.wk-filters__toolbar{display:flex;align-items:center;gap:var(--space-2)}.wk-filters__toolbar>.ip-btn{flex-shrink:0}.wk-filters__search{flex:1;min-width:0;max-width:360px}.wk-filters__search input{width:100%;min-width:0}.wk-filters__search input[type=search]::-webkit-search-cancel-button{filter:grayscale(1)}.wk-filters__count{font:500 12px/16px var(--font-mono);color:var(--accent-ink)}.wk-filters__applied{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-1);min-width:0}.wk-filters__remove{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:32px;min-width:44px;max-width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-full);background:var(--surface-2);color:var(--ink);font:500 12px/16px var(--font-sans);overflow-wrap:anywhere;text-align:left;cursor:pointer}.wk-filters__remove svg{width:12px;height:12px;flex-shrink:0}.wk-filters__remove:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.wk-filter-dialog{padding:0;overflow:hidden}.wk-filter-dialog[open]{display:flex;flex-direction:column}.wk-filter-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--line);flex-shrink:0}.wk-filter-dialog__header h2{margin:0;font:700 22px/28px var(--font-sans);letter-spacing:0;outline:none}.wk-filter-dialog__body{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6);overflow-y:auto;min-height:0}.wk-filter-dialog__group{border:0;margin:0;padding:0;min-width:0}.wk-filter-dialog__group legend{margin-bottom:var(--space-3);padding:0;font:600 15px/20px var(--font-sans)}.wk-filter-dialog__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.wk-filter-dialog__option{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-sm);font:500 14px/20px var(--font-sans);overflow-wrap:anywhere;cursor:pointer}.wk-filter-dialog__option:has(input:checked){border-color:var(--ink);background:var(--surface-2)}.wk-filter-dialog__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--line);flex-shrink:0}.wk-list{border-top:1px solid var(--line)}.wk-list__heading{margin:0;padding:var(--space-6) var(--space-4) var(--space-2)}.wk-row{scroll-margin-block:12px;border-bottom:1px solid var(--line);transition:background-color .12s}.wk-row:hover{background:var(--surface)}.wk-row--selected,.wk-row--selected:hover{background:var(--accent-soft);border-bottom-color:transparent}.wk-row__summary{display:grid;grid-template-columns:minmax(0,1fr) 160px auto;align-items:center;gap:var(--space-4);padding:var(--space-4);cursor:pointer}.wk-row__text{min-width:0}.wk-row__title{display:block;max-width:100%;padding:0;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;font:600 17px/24px var(--font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wk-row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-1);font:400 14px/20px var(--font-sans);color:var(--ink-muted);font-variant-numeric:tabular-nums}.wk-row__graph{height:36px}.wk-row--selected .wk-row__graph{visibility:hidden}.wk-row__chev{color:var(--ink-muted)}.wk-row__ride{min-width:96px}.wk-row__detail{display:flex;flex-direction:column;gap:var(--space-4);padding:0 var(--space-4) var(--space-4)}.wk-row__desc{margin:0;max-width:64ch;font:400 16px/24px var(--font-sans);color:var(--ink)}.wk-row__actions{display:flex;align-items:center;gap:var(--space-2)}.wk-row__spacer{flex:1}.wk-row__rename{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.wk-input{flex:1 1 240px;max-width:420px}.wk-confirm{display:flex;flex-direction:column;gap:var(--space-4)}.wk-confirm p{margin:0}.wk-confirm__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.wk-empty{padding:var(--space-8) 0;font:400 16px/24px var(--font-sans);color:var(--ink-muted)}.wk-skeleton{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-bottom:1px solid var(--line)}.wk-skeleton__bar{height:16px;border-radius:var(--radius-xs);background:var(--surface-2)}.wk-skeleton__bar--sm{height:12px}@media(max-width:768px){.wk-head{padding:var(--space-6) var(--space-4) var(--space-3)}.wk-head .ip-display{font-size:28px;line-height:36px}.wk-panels{padding:0 var(--space-4) var(--space-8)}.wk-filters__search{max-width:none}.wk-filters__toolbar>.ip-btn{min-width:44px;min-height:44px;padding-inline:var(--space-3)}.wk-filters__search{min-height:44px}.wk-filters__button-label{display:none}.wk-filters__remove:before{content:"";position:absolute;inset:-6px 0}.wk-filter-dialog{inset:auto 0 0;margin:0;width:100%;max-height:calc(100dvh - 24px);border-radius:var(--radius-md) var(--radius-md) 0 0}.wk-filter-dialog__header,.wk-filter-dialog__body{padding:var(--space-4)}.wk-filter-dialog__footer{padding:var(--space-4);padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}.wk-filter-dialog__footer .ip-btn{padding-inline:var(--space-3)}.wk-row__summary{grid-template-columns:minmax(0,1fr) auto;padding:var(--space-4) var(--space-2)}.wk-row__graph{display:none}.wk-row__detail{padding:0 var(--space-2) var(--space-4)}}.wk-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.wk-page:not(.wk-page--builder) .wk-head{padding-top:var(--space-4)}@media(max-width:768px){.wk-page:not(.wk-page--builder) .wk-head{padding:var(--space-2) var(--space-4) 0;gap:var(--space-2)}.wk-tabs{gap:var(--space-4)}.wk-head__tools .ip-btn{width:44px;height:44px;padding:0}.wk-head__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.wk-page--history{overflow:hidden}.wk-page--history .wk-panels{display:flex;flex-direction:column;min-height:0;padding-bottom:var(--space-4)}.wk-page--history .wk-panel--active{flex:1;min-height:0;display:flex;flex-direction:column}.wk-page--history .activity-list-container{flex:1;min-height:0;height:auto}.wk-page--history .activity-list{min-height:0}.wk-page--history .activity-detail-panel{min-height:0;overflow-y:auto}
