.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg:#f6f7f9;--card:#fff;--fg:#151a21;--muted:#5f6b7a;--line:#dfe3e8;--grid:#141a2114;--ride:#22a05a21;--rain:#388bfd52;--rain-fg:#1f6fd6;--day-fill:transparent;--night-fill:#28345012;--now:#d93a3a;--accent:#1f6feb;--danger:#c62828;--agree-good:#2da44e;--agree-fair:#e3a008;--agree-poor:#d93a3a;--agree-good-fg:#1f7a3a;--agree-fair-fg:#9a6b00;--agree-poor-fg:#b42323;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1116;--card:#161b22;--fg:#e6e9ee;--muted:#8d97a5;--line:#2a313b;--grid:#e6e9ee14;--ride:#2ebe6e24;--rain:#58a6ff5c;--rain-fg:#79b8ff;--day-fill:#ffffff0b;--night-fill:transparent;--now:#ff6b6b;--accent:#58a6ff;--danger:#ff7b72;--agree-good:#2ea043;--agree-fair:#d29922;--agree-poor:#e5534b;--agree-good-fg:#56d364;--agree-fair-fg:#e3b341;--agree-poor-fg:#ff7b72;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e1116;--card:#161b22;--fg:#e6e9ee;--muted:#8d97a5;--line:#2a313b;--grid:#e6e9ee14;--ride:#2ebe6e24;--rain:#58a6ff5c;--rain-fg:#79b8ff;--day-fill:#ffffff0b;--night-fill:transparent;--now:#ff6b6b;--accent:#58a6ff;--danger:#ff7b72;--agree-good:#2ea043;--agree-fair:#d29922;--agree-poor:#e5534b;--agree-good-fg:#56d364;--agree-fair-fg:#e3b341;--agree-poor-fg:#ff7b72;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font:15px/1.4 var(--font);-webkit-text-size-adjust:100%;margin:0}button{font:inherit;color:var(--accent);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;min-height:36px;padding:6px 12px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger)}button.link{border:none;min-height:0;padding:4px 0}button.wide{width:calc(100% - 32px);margin:16px;display:block}.muted{color:var(--muted)}.error{color:var(--danger);margin:12px 16px}main{max-width:1280px;padding-bottom:env(safe-area-inset-bottom);margin:0 auto}header.top{padding:calc(8px + env(safe-area-inset-top)) 16px 4px;justify-content:space-between;align-items:center;display:flex}.top-actions{gap:8px;display:flex}button.icon{width:36px;color:var(--fg);place-items:center;padding:0;display:grid}header.top h1{margin:0;font-size:18px}.tabs{scrollbar-width:none;gap:6px;padding:6px 16px 8px;display:flex;overflow-x:auto}.tabs button{color:var(--fg);border-radius:999px;flex:none}.tabs button.tab-add{color:var(--accent);background:0 0;border-style:dashed}.tabs button[aria-selected=true]{background:var(--fg);border-color:var(--fg);color:var(--bg)}.pager{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;display:flex;overflow-x:auto}.pager::-webkit-scrollbar{display:none}.tabs::-webkit-scrollbar{display:none}.page{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 100%;min-width:0}.spot{padding:0 8px 24px}.swatch{vertical-align:middle;border-radius:2px;width:14px;height:3px;margin-right:5px;display:inline-block}.chart,.chart-placeholder{touch-action:pan-y;min-height:240px}.chart-wrap{position:relative}.spot-map-wrap{margin:0 8px 8px;position:relative}.spot-map{z-index:0;background:#24323a;border-radius:10px;height:150px;overflow:hidden}.map-recentre{z-index:1;color:#fff;background:#0009;border:none;border-radius:999px;min-height:0;padding:4px 10px;font-size:12px;position:absolute;top:8px;right:8px}.spot-map.leaflet-container .leaflet-control-attribution{color:#ddd;background:#00000073;font-size:9px;line-height:1.3}.map-arrow{background:0 0;border:none;place-items:center;display:grid}.chart-reset{background:color-mix(in srgb, var(--bg) 80%, transparent);border-radius:999px;padding:2px 8px;font-size:12px;position:absolute;top:12px;right:12px}.axis-unit{width:26px;color:var(--muted);text-align:right;font-weight:600}.model-row{align-items:center;gap:8px;margin:0 8px 4px 0;font-size:12px;display:flex}.model-row ul{flex-wrap:wrap;gap:2px 12px;margin:0;padding:0;list-style:none;display:flex}.model-row .link{margin-left:auto;font-size:12px}.key-list{padding:0;list-style:none}.key-list li{align-items:baseline;gap:10px;display:flex}.key-mark{text-align:center;flex:none;width:18px}.key-list .key-mark:before{margin-right:0}.legend-now:before{content:"";vertical-align:-1px;border-left:2px dashed var(--now);height:12px;display:inline-block}.chart .u-select{background:var(--grid);opacity:.6}.chart-placeholder{color:var(--muted);place-items:center;display:grid}.uplot,.u-wrap{font-family:var(--font)}.strips{display:block;overflow:visible}.strip-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:2px 12px;margin:2px 8px 4px;font-size:12px;display:flex}.strip-legend .link{margin-left:auto;font-size:12px}.strip-cursor{stroke:var(--muted);stroke-width:1px;stroke-dasharray:2 2}.legend-night:before{content:"";vertical-align:-1px;background:var(--night-fill);border:1px solid var(--line);width:14px;height:10px;margin-right:5px;display:inline-block}.legend-rain:before{content:"";vertical-align:-1px;background:linear-gradient(to top, var(--rain) 60%, transparent 60%) left / 4px 100% no-repeat, linear-gradient(to top, var(--rain) 100%, transparent 0) center / 4px 100% no-repeat, linear-gradient(to top, var(--rain) 35%, transparent 35%) right / 4px 100% no-repeat;width:14px;height:10px;margin-right:5px;display:inline-block}.rain-amount{color:var(--rain-fg);font-weight:600}.legend-ride:before{content:"";vertical-align:-1px;background:var(--ride);border:1px solid var(--agree-good);width:14px;height:10px;margin-right:5px;display:inline-block}@media (width>=900px){.details{grid-template-columns:1fr 1fr;align-items:start;display:grid}}.tag{border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:12px}.chart-mark{border:1.5px solid var(--line);border-radius:2px;flex:none;width:16px;height:10px}.charted .chart-mark{background:linear-gradient(var(--fg), var(--fg)) center / 100% 2.5px no-repeat, color-mix(in srgb, var(--fg) 22%, transparent);border:none}.legend-measured:before{content:"";vertical-align:-1px;background:linear-gradient(var(--fg), var(--fg)) center / 100% 2.5px no-repeat, color-mix(in srgb, var(--fg) 22%, transparent);border-radius:2px;width:16px;height:10px;margin-right:5px;display:inline-block}.empty{text-align:center;margin:32px 16px}.screen{flex-direction:column;max-width:720px;min-height:100dvh;margin:0 auto;display:flex}.screen.center{color:var(--muted);justify-content:center;align-items:center}.bar{padding:calc(8px + env(safe-area-inset-top)) 16px 8px;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;display:flex}.bar h2{margin:0;font-size:17px}.spot-list{margin:0;padding:0;list-style:none}.spot-list li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.spot-list small{color:var(--muted);display:block}.row-actions{gap:6px;display:flex}.row-actions button{padding:6px 10px}.screen.editor{max-width:none;height:100dvh}@media (width>=900px){.screen.editor{grid-template-rows:auto 1fr;grid-template-columns:1fr 380px;display:grid}.editor .bar{grid-column:1/-1}.editor .sheet{border-top:none;border-left:1px solid var(--line);overflow-y:auto}}.map-wrap{flex:1;min-height:0;position:relative}.map{position:absolute;inset:0}.spot-pin{background:var(--accent);border:3px solid #fff;border-radius:50%;box-shadow:0 1px 4px #00000080}.sheet{padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card)}.sheet label{align-items:center;gap:10px;font-size:14px;display:flex}.sheet input{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:8px;flex:1;padding:8px 10px;font-size:16px}.hint{color:var(--muted);margin:8px 0;font-size:13px}.chips{flex-wrap:wrap;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:2px 4px 2px 10px;font-size:13px;display:flex}.chips small{color:var(--muted)}.chips button{min-height:0;color:var(--muted);border:none;padding:2px 8px}.dot{border-radius:50%;width:9px;height:9px;margin-right:4px;display:inline-block}.legend-sources{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.legend-sources .link{margin-left:auto;font-size:13px}.segmented{border:1px solid var(--line);border-radius:10px;gap:2px;padding:2px;display:inline-flex}.segmented button{color:var(--fg);border:none;border-radius:8px;min-width:72px}.segmented button[aria-checked=true]{background:var(--fg);color:var(--bg)}.error.inline{margin:0 0 12px}.settings-dialog{border:none;border-left:1px solid var(--line);background:var(--bg);width:min(88vw,380px);height:100dvh;max-height:none;color:var(--fg);margin:0;padding:0;animation:.18s ease-out slide-in;position:fixed;inset:0 0 0 auto;overflow-y:auto;box-shadow:-8px 0 24px #0000002e}.settings-dialog::backdrop{background:#00000059}@keyframes slide-in{0%{transform:translate(100%)}}@media (width>=700px){.settings-dialog{border:1px solid var(--line);border-radius:14px;height:auto;max-height:calc(100dvh - 80px);animation:.14s ease-out fade-in;inset:64px 16px auto auto;box-shadow:0 12px 32px #0003}}@keyframes fade-in{0%{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.settings-dialog{animation:none}}.signin-prompt{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--card));border-radius:12px;margin:0 16px 8px;padding:10px 12px;font-size:14px}.signin-prompt p{margin:0 0 8px}.signin-actions{align-items:center;gap:14px;display:flex}.save-note{color:var(--muted);border-bottom:1px solid var(--line);margin:0;padding:10px 16px;font-size:13px}.save-note.device{color:var(--fg);background:color-mix(in srgb, var(--accent) 8%, var(--card))}.loading{color:var(--muted);margin:24px 16px}.site-footer{max-width:1280px;padding:16px 16px calc(24px + env(safe-area-inset-bottom));color:var(--muted);margin:0 auto;font-size:12px}.site-footer p{margin:0 0 4px}.site-footer a{color:inherit}.inline-icon{vertical-align:-2px;margin:0 2px}.settings-header{padding:calc(12px + env(safe-area-inset-top)) 16px 8px;justify-content:space-between;align-items:center;display:flex}.settings-header h2{margin:0;font-size:20px}.group{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:8px 16px 16px;overflow:hidden}.group>*+:not(.row-note){border-top:1px solid var(--line)}.group .row{width:100%;min-height:48px;color:var(--fg);font:inherit;text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:12px;margin:0;padding:8px 14px;font-size:15px;display:flex}.group>*+.row{border-top:1px solid var(--line)}.group button.row:disabled{opacity:.5}.row-label{flex:1;min-width:0}.row-label small{color:var(--muted);font-size:12px;display:block}.row-label.accent{color:var(--accent)}.row-label.muted{color:var(--muted)}.row-value,.chevron{color:var(--muted);font-size:14px}.chevron{font-size:20px;line-height:1}.range{align-items:center;gap:6px;display:flex}.range input{width:52px;font:inherit;text-align:center;color:var(--fg);background:var(--bg);border:1px solid var(--line);appearance:textfield;border-radius:8px;padding:6px 4px;font-size:16px}.range input::-webkit-inner-spin-button{appearance:none;margin:0}.range input::-webkit-outer-spin-button{appearance:none;margin:0}.row-note{text-align:right;color:var(--agree-good-fg);margin:0;padding:0 14px 10px;font-size:12px}.row-note.invalid{color:var(--danger)}.group-note{color:var(--muted);margin:0 20px 6px;font-size:12px}.avatar{border-radius:50%;width:32px;height:32px}.row .segmented button{min-width:0;min-height:30px;padding:4px 10px;font-size:14px}.install-steps{margin:0;padding:4px 16px 12px 34px;font-size:14px}.install-steps li{margin:6px 0}.settings-error{margin:0 20px 12px}.settings-footer{text-align:center;color:var(--muted);padding:4px 20px 24px;font-size:11px;line-height:1.6}.settings-footer p{margin:0 0 4px}.settings-footer a{color:inherit}.about-body{padding:0 20px 28px;font-size:15px;line-height:1.5}.about-body>p{margin:0 0 12px}.model-card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:12px 14px}.model-card h3,.about-subhead{margin:0 0 6px;font-size:16px}.about-subhead{margin-top:20px}.model-card p{margin:0 0 8px}.model-card dl{grid-template-columns:auto 1fr;gap:2px 12px;margin:8px 0 0;font-size:13px;display:grid}.model-card dt{color:var(--muted)}.model-card dd{margin:0}.about-body ul{margin:0;padding-left:20px}.about-body li{margin:6px 0}@media (width>=700px){.about-dialog{width:460px}}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:8px;padding:10px 14px 4px}.panel-head{flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding-bottom:6px;display:flex}.panel-head h3{margin:0;font-size:16px;font-weight:600}.panel-detail{color:var(--muted);align-items:baseline;gap:6px;font-size:13px;display:inline-flex}.panel-unit{color:var(--muted);margin-left:auto;font-size:13px}.panel-extra{flex-wrap:wrap;align-items:center;gap:6px 10px;width:100%;display:flex}.panel-extra .reset{margin-left:auto;font-size:13px}.reading-row{border:none;border-top:1px solid var(--line);width:100%;min-height:44px;color:var(--fg);font:inherit;text-align:left;background:0 0;border-radius:0;grid-template-columns:16px minmax(0,1fr) auto 76px;align-items:center;gap:10px;margin:0;padding:6px 0;display:grid}button.reading-row.station{border-radius:8px;width:calc(100% + 16px);margin:0 -8px;padding:6px 8px}button.reading-row.station:disabled{opacity:.6}.reading-row.charted{background:var(--grid)}.reading-marker{justify-content:center;display:flex}.reading-marker .swatch{margin:0}.reading-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;overflow:hidden}.reading-name small{text-overflow:ellipsis;color:var(--muted);font-size:12px;display:block;overflow:hidden}.reading-value{font-variant-numeric:tabular-nums;white-space:nowrap}.reading-value b{font-size:17px;font-weight:600}.reading-gust{color:var(--muted);margin-left:2px;font-size:14px}.reading-dir{color:var(--muted);text-align:right;white-space:nowrap;font-size:13px}.muted-row .reading-name,.muted-row .reading-value b{color:var(--muted)}.tabs button[role=tab]{position:relative}.on-dot{background:var(--agree-good);border:2px solid var(--bg);border-radius:50%;width:11px;height:11px;position:absolute;top:-2px;right:-2px}.on-dot.inline{vertical-align:1px;border-color:#0000;margin-right:6px;display:inline-block;position:static}.about-body>.about-subhead+p,.about-body>p+p{margin-top:0}
