:root{--bg:#EDF2F6;--surface:#fff;--ink:#13213B;--muted:#5D6B82;--line:#D5DEE8;--accent:#2457F5;--on-accent:#fff;--done:#12926B;--sel:#13213B;--on-sel:#fff;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}@media (prefers-color-scheme:dark){:root{--bg:#0C1424;--surface:#16213A;--ink:#EAF0FA;--muted:#95A3BC;--line:#26334F;--accent:#6D93FF;--on-accent:#0C1424;--done:#3FD0A0;--sel:#EAF0FA;--on-sel:#0C1424}}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Bricolage Grotesque,system-ui,sans-serif}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.app{max-width:430px;min-height:100vh;margin:0 auto;padding:20px 20px 40px}.login{display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 60px)}.logo{font-weight:800;font-size:44px;letter-spacing:-1.5px;margin:0}.lede{color:var(--muted);margin:8px 0 32px;font-size:17px;line-height:1.4;max-width:30ch}label{display:block;font-weight:600;font-size:14px;margin:0 0 6px}.field{width:100%;padding:14px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);font-size:16px;margin-bottom:18px}.pw{position:relative}.pw button{position:absolute;right:8px;top:6px;background:none;border:0;color:var(--accent);font-weight:600;padding:8px;cursor:pointer}.btn{width:100%;padding:16px;border-radius:14px;border:0;background:var(--accent);color:var(--on-accent);font-weight:800;font-size:17px;cursor:pointer}.btn.done{background:transparent;color:var(--done);box-shadow:inset 0 0 0 2px var(--done)}.link{background:none;border:0;color:var(--accent);font-weight:600;padding:12px 0;cursor:pointer}.err{color:#d13b3b;font-size:14px;margin:-8px 0 14px}.top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.hi{color:var(--muted);font-size:15px;margin:0}.title{font-size:30px;font-weight:800;letter-spacing:-.8px;margin:2px 0}.avatar{width:44px;height:44px;border-radius:50%;border:0;background:var(--surface);font-weight:800;cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line)}.weekbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.arrow{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;font-size:16px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:24px}.day{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 0 9px;border-radius:14px;border:1.5px solid transparent;background:var(--surface);cursor:pointer}.day small{font-size:12px;color:var(--muted);font-weight:600}.day span{font-size:18px;font-weight:800}.day.today{border-color:var(--accent)}.day.sel{background:var(--sel)}.day.sel small,.day.sel span{color:var(--on-sel)}.dot{width:7px;height:7px;border-radius:50%;background:var(--line)}.dot.running{background:var(--accent)}.dot.gym{background:var(--muted)}.dot.done{background:var(--done)}.card{background:var(--surface);border-radius:24px;padding:24px;border:1.5px solid var(--line)}.center{text-align:center}.chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chip{font-size:14px;font-weight:600;padding:5px 12px;border-radius:99px;background:var(--bg);color:var(--accent)}.chip.gym,.chip.rest{color:var(--muted)}.chip.race{background:var(--ink);color:var(--bg)}.phase{color:var(--muted);font-size:14px}.wtitle{font-size:22px;letter-spacing:-.4px;margin:16px 0 4px;line-height:1.2}.dist{font-size:64px;font-weight:800;letter-spacing:-2.5px;line-height:1;margin:10px 0}.dist i{font-style:normal;font-size:24px;letter-spacing:0;color:var(--muted);margin-left:6px;font-weight:600}.notes{color:var(--muted);line-height:1.5;font-size:15px;margin:8px 0 16px}.tasks{list-style:none;margin:0 0 22px;padding:0;border-top:1.5px solid var(--line)}.tasks li{padding:14px 0;border-bottom:1.5px solid var(--line)}.trow{display:flex;justify-content:space-between;gap:12px;font-size:15px}.trow span{color:var(--accent);font-weight:600;text-align:right;white-space:nowrap}.tasks p{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}summary{cursor:pointer;color:var(--accent);font-size:14px;font-weight:600;margin-top:8px}.sum{display:flex;justify-content:space-between;margin-top:18px;color:var(--muted);font-size:15px}
