:root{--bg: #eef1ee;--surface: #ffffff;--ink: #18201c;--muted: #5d6862;--line: #d6ddd8;--link: #2554a3;--plate-warm: #2f8a55;--plate-str: #2554a3;--plate-cond: #d29a12;--plate-cool: #7b8580;--on-plate: #ffffff;--on-cond: #241a00;--chip: #e3e8e4;--display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;--body: "Archivo", "Helvetica Neue", Arial, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111513;--surface: #1a201d;--ink: #e8ece9;--muted: #9aa49e;--line: #2b332f;--link: #8fb1ee;--plate-warm: #49b277;--plate-str: #5d8be0;--plate-cond: #e8b43a;--plate-cool: #8d9792;--on-plate: #0d1210;--on-cond: #1d1500;--chip: #232a26;color-scheme:dark}}:root[data-theme=dark]{--bg: #111513;--surface: #1a201d;--ink: #e8ece9;--muted: #9aa49e;--line: #2b332f;--link: #8fb1ee;--plate-warm: #49b277;--plate-str: #5d8be0;--plate-cond: #e8b43a;--plate-cool: #8d9792;--on-plate: #0d1210;--on-cond: #1d1500;--chip: #232a26;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}.wrap{max-width:560px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}header.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}header.bar .wrap{display:flex;flex-direction:column;gap:10px;padding-block:12px}.brand{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.brand h1{margin:0;font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:.02em;text-transform:uppercase;line-height:1}.brand .dates{font-family:var(--display);font-weight:500;font-size:15px;color:var(--muted);letter-spacing:.04em;font-variant-numeric:tabular-nums}.weeks{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.weeks button,.days button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px}.weeks button{font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:.04em;padding:6px 0;text-transform:uppercase}.weeks button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.days{display:grid;grid-template-columns:1fr 1fr;gap:6px}.days button{display:flex;align-items:baseline;justify-content:center;gap:8px;padding:8px 6px}.days button .d{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.days button .t{font-family:var(--display);font-weight:700;font-size:20px;text-transform:uppercase;letter-spacing:.03em}.days button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--surface)}button:focus-visible,a:focus-visible{outline:2px solid var(--link);outline-offset:2px}main .wrap{display:flex;flex-direction:column;gap:18px;padding-block:18px 40px}.timeline{display:flex;flex-direction:column;gap:6px}.tl-bar{display:flex;height:30px;border-radius:6px;overflow:hidden;gap:2px}.tl-bar span{display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:600;font-size:14px;color:var(--on-plate);min-width:0;white-space:nowrap;overflow:hidden}.tl-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.k-warm{--p: var(--plate-warm);--op: var(--on-plate)}.k-str{--p: var(--plate-str);--op: var(--on-plate)}.k-cond{--p: var(--plate-cond);--op: var(--on-cond)}.k-cool{--p: var(--plate-cool);--op: var(--on-plate)}.tl-bar span{background:var(--p);color:var(--op)}section.block{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.bh{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.plate{flex:none;width:44px;height:44px;border-radius:50%;background:var(--p);color:var(--op);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:17px;line-height:1;box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--op) 22%,transparent);font-variant-numeric:tabular-nums}.bh h2{margin:0;font-family:var(--display);font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.03em;line-height:1.05;text-wrap:balance}.bh .sub{font-size:13px;color:var(--muted)}.lines{list-style:none;margin:0;padding:6px 14px 12px;display:flex;flex-direction:column}.lines li{min-width:0}.ex{display:grid;grid-template-columns:3.4rem 1fr;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px dashed var(--line)}.ex:last-child{border-bottom:0}.q{font-family:var(--display);font-weight:600;font-size:18px;text-align:right;color:var(--p);font-variant-numeric:tabular-nums;white-space:nowrap}.nm{min-width:0;overflow-wrap:anywhere}.nm a{color:var(--link);font-weight:600;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--link) 40%,transparent)}.nm a:after{content:"↗";font-size:.75em;margin-left:2px;opacity:.7}.nm a:hover{border-bottom-color:var(--link)}.pair .nm{font-size:14px;color:var(--muted)}.pair .nm a{font-size:15px}.scheme{margin-top:8px;padding:6px 10px;background:var(--chip);border-radius:6px;font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:.02em;align-self:flex-start;font-variant-numeric:tabular-nums}.lines li.scheme:first-child{margin-top:4px}.note{padding:6px 0 2px;font-size:13px;color:var(--muted);font-style:italic}.then{display:flex;align-items:center;gap:10px;margin:10px 0 2px;font-family:var(--display);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.then:before,.then:after{content:"";flex:1;height:1px;background:var(--line)}.prog{padding:10px 14px 14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.prog .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.prog .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.prog .steps div{border:1px solid var(--line);border-radius:6px;padding:5px 4px;text-align:center;font-variant-numeric:tabular-nums}.prog .steps b{display:block;font-family:var(--display);font-size:17px;font-weight:700;line-height:1.1}.prog .steps small{display:block;font-size:11px;color:var(--muted);line-height:1.2}.prog .steps div.on{border-color:var(--plate-str);background:color-mix(in srgb,var(--plate-str) 12%,transparent)}.prog .steps div.on b{color:var(--plate-str)}footer{color:var(--muted);font-size:12px;text-align:center;padding:4px 0 0}.has-timer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.lines li.scheme.has-timer{align-self:stretch}.tchips{display:flex;gap:6px;flex:none}.tchip{display:inline-flex;align-items:center;gap:5px;font-family:var(--display);font-weight:700;font-size:15px;font-style:normal;letter-spacing:.03em;color:var(--ink);background:var(--surface);border:1.5px solid var(--p, var(--ink));border-radius:999px;padding:3px 10px 3px 7px;cursor:pointer;font-variant-numeric:tabular-nums;line-height:1.2}.tchip svg{width:15px;height:15px;flex:none;fill:var(--p, var(--ink))}.tchip:hover{background:color-mix(in srgb,var(--p, var(--ink)) 10%,var(--surface))}.bh .tchips{margin-left:auto}main .wrap.timer-open{padding-bottom:240px}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:3px solid var(--p, var(--ink));box-shadow:0 -8px 24px #0000002e;padding-bottom:env(safe-area-inset-bottom,0px)}.sheet .wrap{display:flex;flex-direction:column;gap:8px;padding-block:12px 14px}.sh-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.sh-title{font-family:var(--display);font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sh-close{font:inherit;font-size:13px;color:var(--muted);background:none;border:0;cursor:pointer;padding:4px 2px}.sh-actions{display:flex;gap:14px;flex:none}#shSound[aria-pressed=false]{text-decoration:line-through}.sh-main{display:flex;align-items:center;justify-content:space-between;gap:12px}.sh-phase{font-family:var(--display);font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.03em;line-height:1.05;min-width:0}.sh-phase small{display:block;font-family:var(--body);font-weight:500;font-size:13px;text-transform:none;letter-spacing:0;color:var(--muted);margin-top:2px}.sh-clock{font-family:var(--display);font-weight:700;font-size:58px;line-height:.9;font-variant-numeric:tabular-nums;flex:none}.sheet[data-kind=rest] .sh-clock,.sheet[data-kind=ready] .sh-clock{color:var(--muted)}.sheet[data-kind=work] .sh-clock{color:var(--p, var(--ink))}.sh-prog{height:6px;border-radius:3px;background:var(--chip);overflow:hidden}.sh-prog i{display:block;height:100%;width:0;background:var(--p, var(--ink))}.sh-next{font-size:13px;color:var(--muted);min-height:1.2em}.sh-btns{display:flex;gap:8px}.sh-btns button{font:inherit;font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:.04em;text-transform:uppercase;border-radius:8px;padding:10px 14px;cursor:pointer;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.sh-btns .go{flex:1;background:var(--ink);color:var(--surface);border-color:var(--ink)}.sh-btns .rounds{font-variant-numeric:tabular-nums}@media(orientation:landscape)and (max-height:600px){.sheet:not([hidden]){top:0;border-top-width:8px;box-shadow:none;display:flex;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.sheet .wrap{max-width:none;width:100%;height:100%;justify-content:space-between;gap:2vh;padding-block:3vh;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}.sh-title{font-size:max(15px,4.5vh)}.sh-close{font-size:max(14px,4vh)}.sh-main{flex:1;min-height:0;gap:4vw}.sh-phase{font-size:max(22px,10vh);max-width:42vw}.sh-phase small{font-size:max(14px,5vh);margin-top:1vh}.sh-clock{font-size:min(50vh,30vw);line-height:.85}.sh-prog{height:max(6px,2vh)}.sh-next{font-size:max(13px,4.5vh)}.sh-btns button{font-size:max(16px,5vh);padding:1.6vh 3vw}}@media(prefers-reduced-motion:no-preference){section.block{animation:rise .25s ease-out both}@keyframes rise{0%{transform:translateY(4px);opacity:.6}to{transform:none;opacity:1}}}body{margin:0;min-height:100vh}input,textarea,select,button{font:inherit;color:inherit}.demo{background:var(--plate-cond);color:var(--on-cond);font-size:13px;padding:6px 16px;text-align:center}.demo button{background:none;border:0;text-decoration:underline;cursor:pointer;padding:0;font-weight:600}.empty{color:var(--muted);text-align:center;padding:24px 8px;margin:0}.chip{display:inline-block;font-size:12px;padding:3px 8px;border-radius:999px;background:var(--chip);white-space:nowrap}.chip.warn{background:color-mix(in srgb,var(--plate-cond) 30%,var(--surface))}.tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.tabs a{font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:4px 10px;border-radius:6px}.tabs a[aria-current=page]{color:var(--surface);background:var(--ink)}.tabs .signout{margin-left:auto;background:none;border:0;color:var(--muted);font-size:13px;cursor:pointer;padding:4px 2px}.prog-pick{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:3px 6px;font-size:13px;max-width:45%}.days button{position:relative}.days button .tick{position:absolute;top:3px;right:6px;font-size:13px;font-weight:700;color:var(--plate-warm)}.days button.is-done{border-color:color-mix(in srgb,var(--plate-warm) 60%,var(--line))}.past-note{margin:0;font-size:13px;color:var(--muted);background:var(--chip);padding:8px 12px;border-radius:8px}.past-note a,.back,.link-btn{color:var(--link);font-weight:600}.back{text-decoration:none;font-size:14px}.link-btn{align-self:center;font-size:14px}.wrap.login{min-height:80vh;display:grid;place-items:center;padding-block:40px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px 22px;display:flex;flex-direction:column;gap:12px}.login-mark{width:52px;height:52px;border-radius:50%;background:var(--plate-str);color:var(--on-plate);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:20px;box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--on-plate) 22%,transparent)}.login-card h1{margin:0;font-family:var(--display);font-weight:700;font-size:30px;text-transform:uppercase;letter-spacing:.02em}.login-msg{margin:0;color:var(--muted)}.login-card form{display:flex;flex-direction:column;gap:12px}.login-err{margin:0;min-height:1.2em;font-size:14px;color:var(--ink);font-weight:500}.login-err:empty{display:none}.login-links{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.hint{margin:0;font-size:12px;color:var(--muted)}input.code{font-family:var(--display);font-size:28px;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}button.link{background:none;border:0;color:var(--link);cursor:pointer;padding:4px 0;font-size:14px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.field input,.field textarea{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:10px 12px;font-size:16px}.field textarea{resize:vertical}button.primary{font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:.05em;text-transform:uppercase;background:var(--ink);color:var(--surface);border:1px solid var(--ink);border-radius:8px;padding:12px 14px;cursor:pointer}button.primary:disabled{opacity:.6}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--link);outline-offset:1px}.log-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.log-toggle{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:.04em;text-transform:uppercase;border:1.5px solid var(--ink);background:var(--surface);border-radius:8px;padding:8px 14px;cursor:pointer}.log-toggle.on{background:var(--ink);color:var(--surface)}.save-status{font-size:13px;color:var(--muted)}.save-status.ok{color:var(--plate-warm)}.save-status.warn{color:var(--ink);font-weight:600}.done-chip{margin-left:auto;font-size:13px;font-weight:600;color:var(--plate-warm)}.ex .sets{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px;padding:6px 0 2px}.set{display:grid;grid-template-columns:1.6rem 1fr 1fr;gap:6px;align-items:center}.set-n{font-family:var(--display);font-weight:600;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}.set-f{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--bg);padding-right:8px;min-width:0}.set-f input{width:100%;min-width:0;border:0;background:none;padding:8px;font-size:16px;font-variant-numeric:tabular-nums}.set-f input:disabled{color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1}.set-f span{font-size:12px;color:var(--muted)}.set-add{align-self:flex-start;margin-left:2.2rem;background:none;border:1px dashed var(--line);border-radius:6px;padding:3px 10px;font-size:13px;color:var(--muted);cursor:pointer}.block-log{padding:0 14px 14px}.result{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding-left:10px}.result span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.result input{flex:1;min-width:0;border:0;background:none;padding:10px 10px 10px 0;font-size:16px}.result input:disabled{color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1}.session-card{padding:14px;display:flex;flex-direction:column;gap:14px}.card-h{margin:0;font-family:var(--display);font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.03em}.effort{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.effort button{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:8px 0;font-family:var(--display);font-weight:700;font-size:16px;cursor:pointer;font-variant-numeric:tabular-nums}.effort button[aria-pressed=true]{background:var(--plate-str);color:var(--on-plate);border-color:var(--plate-str)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 6px;text-align:center}.stat b{display:block;font-family:var(--display);font-weight:700;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}.stat small{font-size:12px;color:var(--muted)}.cal{padding:12px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-head h2{margin:0;font-family:var(--display);font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.03em}.cal-nav{width:40px;height:36px;border:1px solid var(--line);background:var(--bg);border-radius:8px;font-size:20px;cursor:pointer}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-dow{text-align:center;font-size:11px;color:var(--muted);padding-bottom:2px}.cal-day{aspect-ratio:1 / 1.05;border:0;border-radius:8px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:5px 0 0;cursor:pointer;min-width:0}.cal-day:disabled{cursor:default}.cal-day .num{font-size:14px;font-variant-numeric:tabular-nums}.cal-day.prog{background:var(--chip)}.cal-day.out{opacity:.35}.cal-day.today .num{font-weight:700;text-decoration:underline;text-underline-offset:3px}.cal-day:not(:disabled){box-shadow:inset 0 0 0 1px var(--line);background:var(--surface)}.dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--p);vertical-align:middle}.dot.open{background:transparent;box-shadow:inset 0 0 0 2px var(--p)}.cal-key{margin:10px 0 0;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.cal-key .swatch{display:inline-block;width:14px;height:12px;border-radius:3px;background:var(--chip);border:1px solid var(--line)}.cal-detail{display:flex;flex-direction:column;gap:12px;scroll-margin-top:140px}.cal-detail:empty{display:none}.log-card .bh{border-bottom:0}.log-facts{padding:0 14px 12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.log-notes{margin:0;font-size:14px;white-space:pre-wrap}.log-body{display:flex;flex-direction:column;gap:12px}.past{padding:12px 14px}.past-list{list-style:none;margin:8px 0 0;padding:0}.past-list a{display:grid;grid-template-columns:5rem 1fr auto;gap:8px;padding:9px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none;font-variant-numeric:tabular-nums}.past-list b{font-family:var(--display);font-size:17px}.past-list .cnt{color:var(--muted);font-size:13px}.coach-card .bh{flex-wrap:wrap}.coach-card .bh .chip{margin-left:auto}.coach-card.inactive{opacity:.6}.coach-members{list-style:none;margin:0;padding:0 14px}.coach-members a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.coach-members li:last-child a{border-bottom:0}.who{display:flex;flex-direction:column;min-width:0}.who b{font-size:16px}.who small{color:var(--muted);font-size:12px}.nums{display:flex;gap:12px;flex:none}.num{text-align:center}.num b{display:block;font-family:var(--display);font-size:22px;line-height:1;font-variant-numeric:tabular-nums}.num small{font-size:11px;color:var(--muted)}.set-f:focus-within,.result:focus-within{outline:2px solid var(--link);outline-offset:1px}.set-f input:focus-visible,.result input:focus-visible{outline:none}
