:root{--bg:#f2f2f7;--bg-elev:#e9e9ef;--card:#fff;--card-2:#f2f2f7;--text:#0b0b0d;--muted:#6e6e73;--line:#e2e2e7;--ok:#24b35a;--warn:#f2a516;--due:#f0442f;--accent:#2b55e0;--accent-soft:#2b55e024;--strava:#fc5200;--pill-bg:#0b0b0d;--pill-text:#fff;--tabbar-h:60px;--radius:22px;--radius-sm:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#07080b;--bg-elev:#12141a;--card:#1a1d24;--card-2:#232731;--text:#f4f5f7;--muted:#8d92a1;--line:#2b2f3a;--accent:#5b82ff;--accent-soft:#5b82ff2e;--pill-bg:#f4f5f7;--pill-text:#0b0b0d}}*,:before,:after{box-sizing:border-box;min-width:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}html,body{background:var(--bg);color:var(--text);margin:0}body{letter-spacing:-.01em;padding:max(16px, calc(env(safe-area-inset-top) + 8px)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-font-smoothing:antialiased;max-width:600px;margin:0 auto;font:17px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,Segoe UI,Roboto,sans-serif;overflow-x:clip}body:has(.tabbar){padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 28px)}img,svg{max-width:100%}p,li,h1,h2,h3,a,span,code{overflow-wrap:anywhere}h1{letter-spacing:-.03em;margin:0;font-size:34px;font-weight:750;line-height:1.1}h2{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700;line-height:1.2}h3{margin:0;font-size:17px;font-weight:650}p{margin:0 0 12px}a{color:inherit}.muted{color:var(--muted);font-size:15px}.small{margin:8px 0 0;font-size:15px}.stack{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}main.stack{gap:20px}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.row>:first-child{flex:auto}.card{background:var(--card);border-radius:var(--radius);padding:18px}.notice{background:var(--card);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:14px 16px;font-size:15px;display:flex}.notice:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.page-head{align-items:center;gap:14px;padding-top:4px;display:flex}.avatar{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:19px;font-weight:700;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 2px;font-size:13px;font-weight:650}.back{background:var(--card);width:44px;height:44px;color:var(--text);border-radius:50%;place-items:center;font-size:0;text-decoration:none;display:grid}.back:before{content:"";border-bottom:2.5px solid;border-left:2.5px solid;width:11px;height:11px;transform:translate(2px)rotate(45deg)}.bike-card{background:var(--card);border-radius:var(--radius);padding:20px 18px 18px}.bike-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.bike-head .sub{color:var(--muted);margin:4px 0 0;font-size:15px}.chev{color:var(--muted);padding:2px 4px;font-size:26px;line-height:1;text-decoration:none}.hero{align-items:center;gap:16px;margin:18px 0 4px;text-decoration:none;display:flex}.ring{flex:none;width:76px;height:76px;transform:rotate(-90deg)}.ring .track{stroke:var(--card-2)}.ring .fill{stroke:var(--ok);transition:stroke-dashoffset .6s}.ring .fill.warning{stroke:var(--warn)}.ring .fill.due{stroke:var(--due)}.hero-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:13px;font-weight:650}.big{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:40px;font-weight:750;line-height:1.05}.big small{color:var(--muted);letter-spacing:-.01em;margin-left:4px;font-size:17px;font-weight:600}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 0;padding-top:16px;display:grid}.stat{text-decoration:none;display:block}.stat-label{color:var(--muted);font-size:13px}.stat-value small{color:var(--muted);margin-left:2px;font-size:13px;font-weight:600}.stat-value{white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:19px;font-weight:650}.stat-value.warning{color:var(--warn)}.stat-value.due{color:var(--due)}.stat .bar{height:4px;margin-top:8px}.meta{color:var(--muted);margin:14px 0 0;font-size:14px}.pill{color:#fff;white-space:nowrap;border-radius:999px;flex:none;padding:4px 10px;font-size:13px;font-weight:650}:is(.pill,.dot).ok,.bar>span.ok{background:var(--ok)}:is(.pill,.dot,.bar>span).warning{background:var(--warn)}:is(.pill,.dot,.bar>span).due{background:var(--due)}:is(.pill,.dot,.bar>span):is(.not_mounted,.no_data){background:var(--muted)}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.bar{background:var(--card-2);border-radius:3px;height:6px;overflow:hidden}.bar>span{border-radius:3px;height:100%;transition:width .4s;display:block}.status-line{font-variant-numeric:tabular-nums;margin:8px 0;font-size:20px;font-weight:650;line-height:1.25;text-decoration:none;display:block}button,.btn{font:inherit;cursor:pointer;background:var(--pill-bg);min-height:50px;color:var(--pill-text);-webkit-user-select:none;user-select:none;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 22px;font-size:17px;font-weight:650;text-decoration:none;transition:transform .1s,opacity .1s;display:inline-flex}button:active,.btn:active{opacity:.85;transform:scale(.97)}button.secondary,.btn.secondary{background:var(--card-2);color:var(--text)}button.ghost,.btn.ghost{color:var(--accent);background:0 0;min-height:44px;padding:10px 4px}button.big{width:100%;min-height:64px;font-size:20px}button:disabled{opacity:.5;cursor:default}.actions{grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:18px;display:grid}.actions>form,.actions>form>button,form>button[type=submit]:only-of-type{width:100%}.strava-btn{background:var(--strava);color:#fff;border-radius:999px;padding:15px 24px;font-weight:700;text-decoration:none;display:inline-block}label{color:var(--muted);grid-template-columns:minmax(0,1fr);gap:6px;font-size:15px;display:grid}input[type=date],input[type=number],input[type=text]{font:inherit;color:var(--text);border-radius:var(--radius-sm);background:var(--card-2);appearance:none;border:0;width:100%;min-width:0;max-width:100%;min-height:48px;padding:12px 14px;font-size:17px;line-height:1.2}input[type=date]{text-align:left;display:block}input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}input[type=checkbox]{width:24px;height:24px;accent-color:var(--accent);flex:none}input:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}details>summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex:none;width:8px;height:8px;margin-left:auto;transition:transform .2s;transform:rotate(-45deg)}details[open]>summary:after{transform:rotate(45deg)}.two-col,.rule-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;display:grid}.rule-form>button{grid-column:1/-1}@media (max-width:360px){.two-col,.rule-form{grid-template-columns:minmax(0,1fr)}}.segmented{background:var(--card-2);border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:3px;display:grid}.segmented button{color:var(--text);background:0 0;border-radius:10px;min-height:36px;padding:6px 4px;font-size:15px;font-weight:600}.segmented button.active{background:var(--card);box-shadow:0 1px 3px #0000002e}code{font-size:.85em}.group{gap:6px;display:grid}.group-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 0 16px;font-size:13px;font-weight:600}.group-foot{color:var(--muted);margin:0 16px;font-size:13px}.list{background:var(--card);border-radius:var(--radius-sm);overflow:hidden}.list-row{min-height:50px;color:inherit;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;display:flex;position:relative}.list>*+:before{content:"";border-top:1px solid var(--line);position:absolute;top:0;left:16px;right:0}.list>details{position:relative}.list>details>summary{gap:12px;min-height:50px;padding:10px 16px;font-weight:400}.list>details>.list-body{padding:0 16px 16px}.list-row .label,.list>details>summary .label{flex:auto}.value{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.value.warning{color:var(--warn)}.value.due{color:var(--due)}.list-row.link:after{content:"";border-right:2px solid var(--muted);border-top:2px solid var(--muted);flex:none;width:8px;height:8px;transform:rotate(45deg)}.list-row input[type=number]{text-align:right;flex:none;width:96px;min-height:38px;padding:8px 10px}.list-row .unit{color:var(--muted);flex:none;width:56px;font-size:15px}.list-row form{flex:none}.list-row button{min-height:36px;padding:8px 16px;font-size:15px}.big-card{background:var(--card);border-radius:var(--radius);padding:18px}.big-card .big{margin:4px 0 2px;font-size:56px}.big-card .of{color:var(--muted);margin:0 0 14px;font-size:15px}.tabbar{z-index:10;background:color-mix(in srgb, var(--bg-elev) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-top:.5px solid var(--line);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar-inner{width:100%;max-width:600px;height:var(--tabbar-h);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.tabbar a{color:var(--muted);-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.tabbar a svg{width:26px;height:26px}.tabbar a[aria-current=page]{color:var(--accent)}.tabbar a:active{opacity:.6}footer{justify-content:center;margin-top:8px;display:flex}input.switch{appearance:none;cursor:pointer;background:var(--card-2);border-radius:999px;flex:none;width:51px;height:31px;margin:0;transition:background .2s;position:relative}input.switch:after{content:"";background:#fff;border-radius:50%;width:27px;height:27px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #00000040}input.switch:checked{background:var(--accent)}input.switch:checked:after{transform:translate(20px)}
