:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}.card{padding:2em}.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;width:100%}.grid a.card,.grid .placeholder{display:block;color:inherit;text-decoration:none;border-radius:12px;overflow:hidden;background:#8080801f;transition:transform .2s,box-shadow .2s}.grid a.card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000059}.grid img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.grid .placeholder img{filter:grayscale(.8) brightness(.6)}.card-body{padding:.75rem 1rem 1rem;text-align:left}.card-body h2{margin:0;font-size:1.1rem}.card-body p{margin:.25rem 0 0;font-size:.85rem;opacity:.75}.badge{display:inline-block;margin-top:.5rem;padding:.1rem .6rem;border-radius:999px;border:1px solid #646cff;color:#646cff;font-size:.75rem}#app{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}section.svelte-6m1per{display:flex;flex-direction:column;align-items:center;gap:1rem}.bpm-display.svelte-6m1per{margin:0;line-height:1}.bpm-value.svelte-6m1per{font-size:4rem;font-weight:700;font-variant-numeric:tabular-nums}.bpm-unit.svelte-6m1per{margin-left:.5rem;color:#888}.controls.svelte-6m1per{display:flex;align-items:center;gap:.75rem;width:min(24rem,100%)}input[type=range].svelte-6m1per{flex:1;accent-color:#646cff}.toggle.svelte-6m1per{min-width:8rem}.info.svelte-6m1per{width:min(28rem,100%);text-align:left;font-size:.9rem}.info.svelte-6m1per summary:where(.svelte-6m1per){cursor:pointer;color:#646cff;font-weight:500}.info.svelte-6m1per p:where(.svelte-6m1per){margin:.5rem 0 0;opacity:.85}.panel.svelte-f3p84p{display:flex;flex-direction:column;gap:.6rem;padding:.9rem 1rem 1rem;border:1px solid rgba(128,128,128,.3);border-radius:10px;background:#80808012}h2.svelte-f3p84p{margin:0;font-size:1rem;font-weight:600}.panel-hint.svelte-f3p84p{margin:-.35rem 0 0;font-size:.8rem;opacity:.7}.tool.svelte-1grplzz{display:flex;flex-direction:column;align-items:stretch;gap:1rem;width:min(28rem,100%);margin:0 auto;text-align:left}h2.svelte-1grplzz{margin:.5rem 0 -.5rem;font-size:1rem;font-weight:600;opacity:.85}.presets.svelte-1grplzz{display:flex;gap:.5rem}.presets.svelte-1grplzz button:where(.svelte-1grplzz){flex:1;min-width:0;overflow-wrap:break-word;padding:.5rem;font-size:.9rem}.presets.svelte-1grplzz button.selected:where(.svelte-1grplzz){border-color:#646cff;color:#646cff}.preset-tagline.svelte-1grplzz{display:block;margin-top:.25rem;font-size:.7rem;font-weight:400;opacity:.7}.preset-hint.svelte-1grplzz{margin:-.5rem 0 0;font-size:.85rem;text-align:center;color:#888}.fields.svelte-1grplzz{display:flex;flex-direction:column;gap:.75rem}.fields.svelte-1grplzz label:where(.svelte-1grplzz){display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.label-input.svelte-1grplzz{display:flex;align-items:center;gap:.4rem;flex:none;margin-left:auto}input[type=number].svelte-1grplzz{width:6rem;padding:.3rem .5rem;border:1px solid rgba(128,128,128,.4);border-radius:6px;background:#8080801f;color:inherit;font:inherit;font-variant-numeric:tabular-nums;text-align:right}.unit.svelte-1grplzz,.total.svelte-1grplzz{color:#888;font-size:.85rem}.total.svelte-1grplzz{min-width:6.5rem}.hint.svelte-1grplzz{display:block;font-size:.8rem;opacity:.7}.salt.svelte-1grplzz{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.salt.svelte-1grplzz label:where(.svelte-1grplzz){display:flex;align-items:center;gap:.5rem}input[type=radio].svelte-1grplzz{accent-color:#646cff}.reset.svelte-1grplzz{align-self:flex-start;font-size:.85rem;padding:.4em .9em}dl.svelte-1grplzz{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0;text-align:left}dt.svelte-1grplzz{opacity:.75}dd.svelte-1grplzz{margin:0;font-variant-numeric:tabular-nums}.band.svelte-1grplzz{display:inline-block;margin-left:.35rem;padding:.1rem .5rem;border-radius:999px;font-size:.75rem}.band.isotonic.svelte-1grplzz{border:1px solid #3fb950;color:#3fb950}.band.hypotonic.svelte-1grplzz{border:1px solid #888;color:#888}.band.hypertonic.svelte-1grplzz{border:1px solid #f85149;color:#f85149}.schedule.svelte-1grplzz{margin:0;padding-left:1.1rem;font-size:.9rem}.schedule.svelte-1grplzz li:where(.svelte-1grplzz)+li:where(.svelte-1grplzz){margin-top:.35rem}.flags.svelte-1grplzz{list-style:none;margin:0;padding:0;font-size:.85rem}.flag.svelte-1grplzz{padding:.5rem .75rem;border-left:3px solid #888;background:#8080801f;margin-bottom:.5rem;border-radius:0 6px 6px 0}.flag.warn.svelte-1grplzz{border-left-color:#f85149}.info.svelte-1grplzz{font-size:.9rem}.info.svelte-1grplzz summary:where(.svelte-1grplzz){cursor:pointer;color:#646cff;font-weight:500}.info.svelte-1grplzz p:where(.svelte-1grplzz){margin:.5rem 0 0;opacity:.85}.tool.svelte-voupmh{display:flex;flex-direction:column;align-items:stretch;gap:1rem;width:min(34rem,100%);margin:0 auto;text-align:left}h2.svelte-voupmh{margin:.5rem 0 -.5rem;font-size:1rem;font-weight:600;opacity:.85}.fields.svelte-voupmh{display:flex;flex-direction:column;gap:.75rem}.fields.svelte-voupmh label:where(.svelte-voupmh){display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.label-input.svelte-voupmh{display:flex;align-items:center;gap:.4rem;flex:none;margin-left:auto}input[type=number].svelte-voupmh,input[type=date].svelte-voupmh,select.svelte-voupmh{padding:.3rem .5rem;border:1px solid rgba(128,128,128,.4);border-radius:6px;background:#8080801f;color:inherit;font:inherit}input[type=number].svelte-voupmh,input[type=date].svelte-voupmh{font-variant-numeric:tabular-nums;text-align:right}input[type=number].svelte-voupmh{width:6rem}input[type=radio].svelte-voupmh{accent-color:#646cff}.unit.svelte-voupmh,.muted.svelte-voupmh{color:#888;font-size:.85rem}.hint.svelte-voupmh{display:block;font-size:.8rem;opacity:.7}.choice.svelte-voupmh{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.choice.svelte-voupmh label:where(.svelte-voupmh){display:flex;align-items:center;justify-content:flex-start;gap:.5rem}.preset-hint.svelte-voupmh{margin:-.5rem 0 0;font-size:.85rem;text-align:center;color:#888}.reset.svelte-voupmh{align-self:flex-start;font-size:.85rem;padding:.4em .9em}dl.svelte-voupmh{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0;text-align:left}dt.svelte-voupmh{opacity:.75}dd.svelte-voupmh{margin:0;font-variant-numeric:tabular-nums}table.svelte-voupmh{width:100%;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums}caption.svelte-voupmh{padding:.4rem 0 .3rem;text-align:left}.week-title.svelte-voupmh{display:block;font-weight:600}.week-meta.svelte-voupmh{display:block;font-size:.8rem;color:#888}th.svelte-voupmh,td.svelte-voupmh{padding:.3rem .5rem;text-align:left;border-bottom:1px solid rgba(128,128,128,.2)}tbody.svelte-voupmh th:where(.svelte-voupmh){font-weight:400;opacity:.85;white-space:nowrap}th.svelte-voupmh:last-child,td.svelte-voupmh:last-child{text-align:right}tr.past.svelte-voupmh{opacity:.45}tr.today.svelte-voupmh{background:#646cff1f}tr.race.svelte-voupmh th:where(.svelte-voupmh),tr.race.svelte-voupmh td:where(.svelte-voupmh){font-weight:600;color:#646cff}.flags.svelte-voupmh{list-style:none;margin:0;padding:0;font-size:.85rem}.flag.svelte-voupmh{padding:.5rem .75rem;border-left:3px solid #888;background:#8080801f;margin-bottom:.5rem;border-radius:0 6px 6px 0}.flag.warn.svelte-voupmh{border-left-color:#f85149}.info.svelte-voupmh{font-size:.9rem}.info.svelte-voupmh summary:where(.svelte-voupmh){cursor:pointer;color:#646cff;font-weight:500}.info.svelte-voupmh p:where(.svelte-voupmh){margin:.5rem 0 0;opacity:.85}.tool.svelte-1fqzq9y{display:flex;flex-direction:column;align-items:stretch;gap:1rem;width:min(34rem,100%);margin:0 auto;text-align:left}h2.svelte-1fqzq9y{margin:.5rem 0 -.5rem;font-size:1rem;font-weight:600;opacity:.85}.fields.svelte-1fqzq9y{display:flex;flex-direction:column;gap:.75rem}.fields.svelte-1fqzq9y label:where(.svelte-1fqzq9y),.field.svelte-1fqzq9y{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.field.svelte-1fqzq9y label:where(.svelte-1fqzq9y){flex:1 1 auto}.label-input.svelte-1fqzq9y{display:flex;align-items:center;gap:.4rem;flex:none;margin-left:auto}input[type=number].svelte-1fqzq9y,input[type=text].svelte-1fqzq9y,input[type=date].svelte-1fqzq9y,select.svelte-1fqzq9y{padding:.3rem .5rem;border:1px solid rgba(128,128,128,.4);border-radius:6px;background:#8080801f;color:inherit;font:inherit}input[type=number].svelte-1fqzq9y,input[type=text].svelte-1fqzq9y,input[type=date].svelte-1fqzq9y{font-variant-numeric:tabular-nums;text-align:right}input[type=number].svelte-1fqzq9y,input[type=text].svelte-1fqzq9y{width:6rem}input[type=radio].svelte-1fqzq9y{accent-color:#646cff}.unit.svelte-1fqzq9y,.muted.svelte-1fqzq9y{color:#888;font-size:.85rem}.hint.svelte-1fqzq9y{display:block;font-size:.8rem;opacity:.7}.choice.svelte-1fqzq9y{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.choice.svelte-1fqzq9y label:where(.svelte-1fqzq9y){display:flex;align-items:center;justify-content:flex-start;gap:.5rem}.reset.svelte-1fqzq9y{align-self:flex-start;font-size:.85rem;padding:.4em .9em}.link.svelte-1fqzq9y{padding:.2em .5em;font-size:.75rem;font-family:inherit;background:none;border:1px solid rgba(128,128,128,.4);border-radius:6px;color:#646cff;cursor:pointer;white-space:nowrap}.link.svelte-1fqzq9y:hover{border-color:#646cff}dl.svelte-1fqzq9y{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0;text-align:left}dt.svelte-1fqzq9y{opacity:.75}dd.svelte-1fqzq9y{margin:0;font-variant-numeric:tabular-nums}dd.svelte-1fqzq9y .muted:where(.svelte-1fqzq9y){display:block}table.svelte-1fqzq9y{width:100%;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums}.caption.svelte-1fqzq9y{margin:-.5rem 0 0;font-size:.85rem}.caption.svelte-1fqzq9y .muted:where(.svelte-1fqzq9y){display:block}th.svelte-1fqzq9y,td.svelte-1fqzq9y{padding:.3rem .5rem;text-align:left;border-bottom:1px solid rgba(128,128,128,.2)}tbody.svelte-1fqzq9y th:where(.svelte-1fqzq9y){font-weight:400;opacity:.85;white-space:nowrap}tbody.svelte-1fqzq9y th:where(.svelte-1fqzq9y) .muted:where(.svelte-1fqzq9y){display:block}th.svelte-1fqzq9y:last-child,td.svelte-1fqzq9y:last-child{text-align:right}tr.goal.svelte-1fqzq9y th:where(.svelte-1fqzq9y),tr.goal.svelte-1fqzq9y td:where(.svelte-1fqzq9y){font-weight:600;color:#646cff}tr.finish.svelte-1fqzq9y th:where(.svelte-1fqzq9y),tr.finish.svelte-1fqzq9y td:where(.svelte-1fqzq9y){font-weight:600}.scroll.svelte-1fqzq9y{max-height:22rem;overflow-y:auto}.purpose.svelte-1fqzq9y{font-size:.8rem;color:#888}.flags.svelte-1fqzq9y{list-style:none;margin:0;padding:0;font-size:.85rem}.flag.svelte-1fqzq9y{padding:.5rem .75rem;border-left:3px solid #888;background:#8080801f;margin-bottom:.5rem;border-radius:0 6px 6px 0}.flag.warn.svelte-1fqzq9y{border-left-color:#f85149}.info.svelte-1fqzq9y{font-size:.9rem}.info.svelte-1fqzq9y summary:where(.svelte-1fqzq9y){cursor:pointer;color:#646cff;font-weight:500}.info.svelte-1fqzq9y p:where(.svelte-1fqzq9y){margin:.5rem 0 0;opacity:.85}.pwa-toast.svelte-1vqxugk{position:fixed;right:0;bottom:0;margin:16px;padding:12px;border:1px solid #8885;border-radius:4px;z-index:2;text-align:left;box-shadow:3px 4px 5px #8885;background-color:#fff}.pwa-toast.svelte-1vqxugk .message:where(.svelte-1vqxugk){margin-bottom:8px}.pwa-toast.svelte-1vqxugk .buttons:where(.svelte-1vqxugk){display:flex}.pwa-toast.svelte-1vqxugk button:where(.svelte-1vqxugk){border:1px solid #8885;outline:none;margin-right:5px;border-radius:2px;padding:3px 10px}
