:root{--paper: #edefe9;--surface: #f8f9f5;--surface-2: #f1f3ec;--ink: #11161a;--ink-soft: #5a6168;--line: #d4d8cd;--line-strong: #c2c7b8;--accent: #243be0;--accent-ink: #1a2bb0;--safe: #1c6b53;--warn: #b4541c;--radius: 14px;--radius-sm: 9px;--maxw: 1080px;--shadow-sm: 0 1px 0 rgba(17, 22, 26, .04), 0 1px 2px rgba(17, 22, 26, .05);--shadow: 0 2px 4px rgba(17, 22, 26, .05), 0 8px 24px -12px rgba(17, 22, 26, .18);--font-display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-body: "Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}html{color-scheme:light}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.05;letter-spacing:-.02em;margin:0;text-wrap:balance}h1{font-size:clamp(2.4rem,6vw,4.1rem)}h2{font-size:clamp(1.6rem,3.4vw,2.3rem)}h3{font-size:1.18rem;letter-spacing:-.01em}a{color:var(--accent-ink);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--accent)}.kicker{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);display:inline-flex;align-items:center;gap:.5ch}.rail{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--safe);display:inline-flex;align-items:center;gap:.6ch}.rail:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--safe);box-shadow:0 0 0 3px #1c6b5329;animation:pulse 2.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.btn{font-family:var(--font-display);font-weight:600;font-size:.98rem;letter-spacing:-.01em;border:1px solid var(--accent);background:var(--accent);color:#fff;padding:.7em 1.25em;border-radius:var(--radius-sm);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;display:inline-flex;align-items:center;gap:.6ch;text-decoration:none}.btn:hover{background:var(--accent-ink);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow)}.btn:active{transform:translateY(0)}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn--ghost:hover{background:var(--surface-2);color:var(--ink)}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:4px}.boundary{position:relative;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow)}.boundary:after{content:"";position:absolute;inset:7px;border:1px dashed var(--line-strong);border-radius:calc(var(--radius) - 6px);pointer-events:none}.boundary__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 18px;border-bottom:1px dashed var(--line);position:relative;z-index:1}.boundary__body{padding:22px;position:relative;z-index:1}@media(max-width:560px){.boundary__body{padding:16px}}label.field{display:block;margin-bottom:14px}label.field>span{display:block;font-size:.82rem;color:var(--ink-soft);margin-bottom:5px;font-weight:600}input[type=number],input[type=text],select{width:100%;font-family:var(--font-body);font-size:1rem;padding:.6em .7em;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}input:focus,select:focus{border-color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent)}.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:480px){.row{grid-template-columns:1fr}}.result{font-family:var(--font-mono);background:var(--ink);color:var(--paper);border-radius:var(--radius-sm);padding:16px 18px;margin-top:4px}.result .big{font-size:2rem;font-weight:700;letter-spacing:-.02em}.result .sub{color:#b9c0c7;font-size:.82rem}.muted{color:var(--ink-soft)}.small{font-size:.86rem}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);padding:30px 18px;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.dropzone.is-over{border-color:var(--accent);background:#e7eafc}hr.sep{border:none;border-top:1px solid var(--line);margin:28px 0}:root{--app-font: "Hanken Grotesk", system-ui, -apple-system, sans-serif;--app-mono: "Spline Sans Mono", ui-monospace, monospace;--app-radius: 14px;--radius-sm: 9px;--radius-lg: 20px;--fs-xs: .78rem;--fs-sm: .88rem;--fs-md: 1rem;--fs-lg: 1.22rem;--fs-xl: 1.6rem;--fs-2xl: 2.1rem;--fs-3xl: 2.75rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--sport-run: #2fbf5b;--sport-ride: #6b6bf5;--sport-swim: #14a5c4;--sport-row: #e08a2b;--sport-ski: #4fa8e8;--sport-walk: #3fc0a0;--sport-other: #98a2b3;--app-accent: #ff5a2c;--app-accent-soft: #ff7a52;--app-on-accent: #1e1206;--app-danger: #ff6a4d;--app-positive: #2fbf5b}:root,:root[data-theme=dark]{--app-bg: #0d0f13;--app-surface: #161922;--app-surface-2: #1d212c;--app-line: #283041;--app-ink: #f1f4fa;--app-ink-soft: #9aa6bd;--app-ink-faint: #6b7689;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 8px 28px -8px rgba(0,0,0,.55);color-scheme:dark}:root[data-theme=light]{--app-bg: #f4f6fa;--app-surface: #ffffff;--app-surface-2: #eef1f6;--app-line: #dde3ec;--app-ink: #11151c;--app-ink-soft: #5a6678;--app-ink-faint: #8a94a6;--shadow-1: 0 1px 2px rgba(16,24,40,.06);--shadow-2: 0 10px 30px -10px rgba(16,24,40,.18);color-scheme:light}html{background:var(--app-bg)}.num,[data-num]{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}body{margin:0;background:var(--app-bg);color:var(--app-ink);font-family:var(--app-font);-webkit-font-smoothing:antialiased;min-height:100dvh;display:flex;flex-direction:column}a{color:inherit}:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}a,button,summary,label,input,select{touch-action:manipulation}.appbar{display:flex;align-items:center;gap:24px;padding:14px 22px;border-bottom:1px solid var(--app-line);position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--app-bg) 88%,transparent);backdrop-filter:blur(10px)}.brand{font-weight:700;font-size:1.05rem;text-decoration:none;letter-spacing:-.02em;display:inline-flex;align-items:center;gap:9px}.brand__mark{width:18px;height:18px;border-radius:6px;background:linear-gradient(135deg,var(--app-accent),var(--app-accent-soft));box-shadow:0 0 0 3px color-mix(in srgb,var(--app-accent) 18%,transparent)}.brand__dim{color:var(--app-ink-soft);font-weight:600}.appnav{display:flex;gap:4px;margin-right:auto}.appnav__link{text-decoration:none;color:var(--app-ink-soft);font-weight:500;font-size:.92rem;padding:7px 13px;border-radius:9px;transition:background .14s,color .14s}.appnav__link:hover{color:var(--app-ink);background:var(--app-surface)}.appnav__link.is-active{color:var(--app-ink);background:var(--app-surface-2)}.modeswitch{display:inline-flex;background:var(--app-surface);border:1px solid var(--app-line);border-radius:10px;padding:3px}.modeswitch__btn{border:0;background:transparent;color:var(--app-ink-soft);cursor:pointer;font-family:var(--app-font);font-size:.82rem;font-weight:600;padding:6px 12px;border-radius:7px}.modeswitch__btn[aria-pressed=true]{background:var(--app-accent);color:var(--app-on-accent)}.themetoggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--app-surface);border:1px solid var(--app-line);color:var(--app-ink-soft);cursor:pointer;transition:color .14s,border-color .14s}.themetoggle:hover{color:var(--app-ink);border-color:color-mix(in srgb,var(--app-accent) 50%,var(--app-line))}.themetoggle__moon{display:none}:root[data-theme=light] .themetoggle__sun{display:none}:root[data-theme=light] .themetoggle__moon{display:inline}.appauth{display:flex;align-items:center;gap:10px}.appauth__who{font-size:.8rem;color:var(--app-ink-soft);font-family:var(--app-mono);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appauth__btn{background:transparent;border:1px solid var(--app-line);color:var(--app-ink);border-radius:9px;padding:7px 13px;font-size:.82rem;font-weight:600;cursor:pointer;text-decoration:none;font-family:var(--app-font);white-space:nowrap;flex:none}.appauth__btn:hover{border-color:var(--app-accent);color:var(--app-accent-soft)}.appmain{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:28px 22px 64px}.appfoot{border-top:1px solid var(--app-line);padding:20px 22px;color:var(--app-ink-soft);font-size:.85rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.appfoot a{color:var(--app-ink-soft);text-decoration:none;margin-left:16px}.appfoot a:hover{color:var(--app-ink)}html[data-mode=beginner] .pro-only{display:none!important}.tabbar{display:none}.tabbar__link{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;min-height:54px;text-decoration:none;color:var(--app-ink-soft);font-size:.68rem;font-weight:600;-webkit-tap-highlight-color:transparent}.tabbar__link svg{stroke-width:1.7}.tabbar__link.is-active{color:var(--app-accent-soft)}.tabbar__link.is-active svg{stroke-width:2.1}@media(max-width:640px){.appnav{display:none}.appbar{gap:6px;padding:11px 12px}.appauth__who,.brand__dim{display:none}.modeswitch{margin-left:auto}.modeswitch__btn{padding:7px 9px;font-size:.78rem}.appauth__btn{padding:8px 12px;min-height:40px;display:inline-flex;align-items:center}.appmain{padding:20px 16px calc(76px + env(safe-area-inset-bottom))}.appfoot{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:color-mix(in srgb,var(--app-bg) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--app-line);padding-bottom:env(safe-area-inset-bottom)}}
