.nav[data-v-b51865b6]{display:flex;gap:8px;margin-bottom:20px}.nav-link[data-v-b51865b6]{font-family:var(--font-mono);font-size:14px;font-weight:500;text-decoration:none;color:var(--muted);padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);transition:all .25s var(--ease)}.nav-link.router-link-active[data-v-b51865b6]{color:#fff;background:var(--teal);border-color:var(--teal)}.lane[data-v-f42449d6]{position:relative;height:14px;border-radius:999px;background:var(--teal-soft);overflow:visible}.rope[data-v-f42449d6]{position:absolute;inset:50% 8px auto;border-top:2px dashed rgba(15,163,150,.35);transform:translateY(-50%)}.fill[data-v-f42449d6]{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,#2cc4b5,var(--teal) 55%,#0b7d73);transition:width .6s var(--ease);min-width:0}.swimmer[data-v-f42449d6]{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--ink);border:2px solid #fff;box-shadow:0 1px 4px #0c3a3859;transform:translate(-50%,-50%);transition:left .6s var(--ease)}.lane.amber[data-v-f42449d6]{background:var(--amber-soft)}.lane.amber .rope[data-v-f42449d6]{border-top-color:#f4a30066}.lane.amber .fill[data-v-f42449d6]{background:linear-gradient(90deg,#ffc247,var(--amber) 55%,#d98f00)}.session[data-v-24aaad07]{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.checkbox[data-v-24aaad07]{flex:none;width:26px;height:26px;margin-top:2px;border:2px solid var(--line);border-radius:9px;background:var(--card);padding:2px;transition:background .25s var(--ease),border-color .25s var(--ease),transform .15s var(--ease)}.checkbox[data-v-24aaad07]:active{transform:scale(.88)}.tick[data-v-24aaad07]{stroke-dasharray:16;stroke-dashoffset:16;transition:stroke-dashoffset .3s var(--ease) .05s}.done .checkbox[data-v-24aaad07]{background:var(--teal);border-color:var(--teal)}.done .tick[data-v-24aaad07]{stroke-dashoffset:0}.body[data-v-24aaad07]{flex:1;min-width:0}.top-row[data-v-24aaad07]{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.day[data-v-24aaad07]{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.chip[data-v-24aaad07]{font-size:12px;font-weight:500;color:var(--ink);background:var(--teal-soft);border-radius:999px;padding:2px 10px;white-space:nowrap}.name[data-v-24aaad07]{font-weight:700;transition:color .25s var(--ease)}.done .name[data-v-24aaad07]{text-decoration:line-through;color:var(--muted)}.note[data-v-24aaad07]{font-size:14px;color:var(--muted)}.stats[data-v-24aaad07]{border:none;background:none;padding:0;font-size:13px;font-weight:500;color:var(--teal)}.comment[data-v-24aaad07]{display:block;font-size:13px;font-style:italic}.week[data-v-90552062]{position:relative;padding:18px;margin-bottom:16px}.week.final[data-v-90552062]{border:2px solid var(--amber);background:linear-gradient(180deg,var(--amber-soft),var(--card) 120px)}.badge[data-v-90552062]{position:absolute;top:-11px;right:16px;font-size:12px;font-weight:600;color:#fff;background:var(--amber);border-radius:999px;padding:2px 12px;letter-spacing:.08em}.label[data-v-90552062]{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}h2[data-v-90552062]{font-size:22px;margin:2px 0}.subtitle[data-v-90552062]{font-size:14px;color:var(--muted)}.progress-row[data-v-90552062]{display:flex;align-items:center;gap:12px;margin:14px 0 6px}.progress-row[data-v-90552062]>:first-child{flex:1}.count[data-v-90552062]{font-size:13px;font-weight:600;color:var(--muted)}.sessions[data-v-90552062]{list-style:none;margin-top:8px}.backdrop[data-v-a6a9ab0b]{position:fixed;inset:0;background:#0c3a3873;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal[data-v-a6a9ab0b]{width:100%;max-width:400px;padding:20px;animation:pop-a6a9ab0b .25s var(--ease)}@keyframes pop-a6a9ab0b{0%{opacity:0;transform:translateY(12px) scale(.97)}}h3[data-v-a6a9ab0b]{font-size:20px}.subtitle[data-v-a6a9ab0b]{font-size:14px;color:var(--muted);margin:4px 0 16px}.grid[data-v-a6a9ab0b]{display:grid;grid-template-columns:1fr 1fr;gap:10px}label[data-v-a6a9ab0b]{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.full[data-v-a6a9ab0b]{margin-top:10px}input[data-v-a6a9ab0b]{font-family:var(--font-mono);font-size:15px;color:var(--ink);padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);width:100%}input[data-v-a6a9ab0b]:focus{outline:2px solid var(--teal);outline-offset:-1px}.actions[data-v-a6a9ab0b]{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.actions button[data-v-a6a9ab0b]{font-weight:700;font-size:14px;padding:10px 18px;border-radius:999px;border:1px solid var(--line);transition:transform .15s var(--ease)}.actions button[data-v-a6a9ab0b]:active{transform:scale(.96)}.ghost[data-v-a6a9ab0b]{background:var(--card);color:var(--muted)}.primary[data-v-a6a9ab0b]{background:var(--teal);border-color:var(--teal);color:#fff}.yoga[data-v-51fc6399]{padding:18px;margin-bottom:16px}summary[data-v-51fc6399]{font-family:var(--font-title);font-weight:700;font-size:17px;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between}summary[data-v-51fc6399]::-webkit-details-marker{display:none}summary[data-v-51fc6399]:after{content:"+";font-family:var(--font-mono);font-size:20px;color:var(--teal);transition:transform .25s var(--ease)}details[open] summary[data-v-51fc6399]:after{transform:rotate(45deg)}.content[data-v-51fc6399]{margin-top:12px}.group[data-v-51fc6399]{margin-bottom:14px}h3[data-v-51fc6399]{font-size:15px;margin-bottom:6px}ul[data-v-51fc6399]{list-style:none}li[data-v-51fc6399]{padding:6px 0;border-top:1px solid var(--line);font-size:14px}strong[data-v-51fc6399]{display:block}li span[data-v-51fc6399]{color:var(--muted)}.links[data-v-51fc6399]{font-size:14px;color:var(--muted)}.hero[data-v-aa0e471d]{margin-bottom:20px}h1[data-v-aa0e471d]{font-size:28px}.subtitle[data-v-aa0e471d]{color:var(--muted);margin:4px 0 14px}.progress-row[data-v-aa0e471d]{display:flex;align-items:center;gap:12px}.progress-row[data-v-aa0e471d]>:first-child{flex:1}.count[data-v-aa0e471d]{font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}.error[data-v-aa0e471d]{padding:16px;color:#a33;margin-bottom:16px}.loading[data-v-aa0e471d]{color:var(--muted);text-align:center;padding:40px 0}.chart[data-v-41720aa6]{width:100%;height:auto}.value[data-v-41720aa6]{font-family:var(--font-mono);font-size:12px;font-weight:600;fill:var(--ink)}.label[data-v-41720aa6]{font-family:var(--font-mono);font-size:12px;fill:var(--muted)}.hero[data-v-60f977af]{margin-bottom:20px}h1[data-v-60f977af]{font-size:28px}.subtitle[data-v-60f977af]{color:var(--muted);margin-top:4px}.grid[data-v-60f977af]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.stat[data-v-60f977af]{padding:16px;display:flex;flex-direction:column;gap:2px}.value[data-v-60f977af]{font-size:26px;font-weight:600}.value small[data-v-60f977af]{font-size:13px;color:var(--muted);margin-left:4px}.label[data-v-60f977af]{font-size:13px;color:var(--muted)}.chart-card[data-v-60f977af]{padding:18px}h2[data-v-60f977af]{font-size:17px;margin-bottom:10px}.error[data-v-60f977af]{padding:16px;color:#a33}.loading[data-v-60f977af]{color:var(--muted);text-align:center;padding:40px 0}:root{--bg: #EDF4F2;--card: #FFFFFF;--ink: #0C3A38;--muted: #5E7A77;--line: #D7E5E2;--teal: #0FA396;--teal-soft: #DDF2EF;--amber: #F4A300;--amber-soft: #FFF3D9;--radius: 16px;--font-title: "Archivo", sans-serif;--font-body: "Karla", sans-serif;--font-mono: "IBM Plex Mono", monospace;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}#app{max-width:640px;margin:0 auto;padding:20px 16px 64px}h1,h2,h3{font-family:var(--font-title);font-weight:800;line-height:1.15}button{font-family:inherit;cursor:pointer}a{color:var(--teal)}.mono{font-family:var(--font-mono)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
