:root{--bg:#0a1624;--surface:#12263a;--surface-2:#1b3550;--border:#25435f;--text:#eaf3fb;--muted:#8fa8c0;--accent:#2ec4b6;--accent-ink:#04201d;--danger:#ff8a8a;--swim:#0b5f78;--rest:#8a4b08;--prep:#2b3a4d;--done:#146c3a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}*{box-sizing:border-box}body{min-height:100dvh;margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}h1,h2,p{margin:0}.btn{border:1px solid var(--border);background:var(--surface-2);border-radius:.6rem;padding:.6rem 1rem;font-weight:600}.btn:hover:not(:disabled){border-color:var(--muted)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--ghost{color:var(--muted);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){color:var(--text);border-color:var(--border)}.btn--danger:hover:not(:disabled){color:var(--danger)}.btn:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.page{max-width:40rem;margin:0 auto;padding:1.25rem 1rem 3rem}.page__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.page__header h1{font-size:1.6rem}.empty{color:var(--muted);text-align:center;padding:2rem 0}.light{color:#1a1a1a;background:#fff;min-height:100dvh}.light .empty{color:#666b73}.light .btn{color:#24425e;background:#fff;border-color:#cbd6e2;transition:background-color .12s,border-color .12s,color .12s,transform .12s}.light .btn:hover:not(:disabled){background:#f1f6fa;border-color:#7c9ab4}.light .btn:active:not(:disabled){transform:translateY(1px)}.light .btn--primary{color:#fff;background:#0b5f78;border-color:#0b5f78}.light .btn--primary:hover:not(:disabled){background:#08495c;border-color:#08495c}.light .btn--danger{color:#a93226;border-color:#e4b7b3}.light .btn--danger:hover:not(:disabled){color:#8f2118;background:#fff4f2;border-color:#c0392b}.light .field>span,.light .help,.light .preview h2{color:#666b73}.light .field input,.light .field textarea{color:#1a1a1a;background:#f1f2f4;border-color:#e3e5e8}.light .field input::placeholder,.light .field textarea::placeholder{color:#777d86}.light .help code,.light .preview{color:#1a1a1a;background:#f1f2f4}.light .preview,.light .preview__row{border-color:#e3e5e8}.light .preview__row--rest{color:#8a4b08}.light .preview__time{color:#666b73}.light .issues{color:#c0392b;border-color:#c0392b}.light .btn--ghost{color:#24425e}.light .btn--ghost:hover:not(:disabled){color:#16344d}.landing{color:#172a3a;background:#f5f7f8;min-height:100dvh}.landing__shell{flex-direction:column;width:min(100%,76rem);min-height:100dvh;margin:0 auto;padding:0 clamp(1.25rem,5vw,4rem);display:flex}.landing__nav{border-bottom:1px solid #dfe6eb;justify-content:space-between;align-items:center;min-height:5.25rem;display:flex}.landing__nav-actions{align-items:center;gap:1.25rem;display:flex}.landing__notice{color:#8f2118;background:#fff8f7;border:1px solid #e4b7b3;border-radius:.35rem;margin-top:1rem;padding:.75rem 1rem;font-size:.9rem}.landing__brand{color:#172a3a;letter-spacing:.1em;align-items:center;gap:.65rem;font-size:.82rem;font-weight:750;text-decoration:none;display:inline-flex}.landing__brand-mark{object-fit:contain;width:1.75rem;height:1.75rem;display:block}.landing__nav-link,.landing__secondary{color:#24425e;background:0 0;border:0;padding:.5rem 0;font-size:.9rem;font-weight:650}.landing__nav-link span{margin-left:.25rem}.landing__nav-link:hover,.landing__secondary:hover{color:#0b5f78}.landing__hero{flex:1;grid-template-columns:minmax(0,1.12fr) minmax(19rem,.88fr);align-items:center;gap:clamp(2.5rem,7vw,6rem);padding:clamp(3rem,8vh,6rem) 0;display:grid}.landing__hero-copy{max-width:35rem}.landing__eyebrow{color:#0b5f78;letter-spacing:.14em;margin-bottom:1.25rem;font-size:.72rem;font-weight:750}.landing__hero h1{color:#172a3a;letter-spacing:-.065em;font-size:clamp(3rem,5.8vw,4.5rem);font-weight:660;line-height:.99}.landing__hero h1 span{color:#0b5f78}.landing__description{color:#5f7181;max-width:31rem;margin-top:1.4rem;font-size:clamp(1rem,1.7vw,1.12rem);line-height:1.7}.landing__actions{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:1.75rem;display:flex}.landing__primary{border-radius:.4rem;align-items:center;min-height:3rem;padding:.75rem 1rem;display:inline-flex}.landing .btn--primary{color:#fff;background:#0b5f78;border-color:#0b5f78}.landing .btn--primary:hover:not(:disabled){background:#08495c;border-color:#08495c}.landing__primary span{margin-left:.55rem}.landing__note{color:#7a8996;margin-top:.9rem;font-size:.82rem}.session-card{background:#fff;border:1px solid #dfe6eb;border-radius:.5rem;justify-self:end;width:100%;max-width:28rem;padding:1.5rem}.session-card__top{border-bottom:1px solid #e8edf0;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1.25rem;display:flex}.session-card__eyebrow{color:#7a8996;letter-spacing:.12em;margin-bottom:.45rem;font-size:.65rem;font-weight:700}.session-card__top h2{color:#172a3a;letter-spacing:-.02em;font-size:1.2rem;font-weight:650}.session-card__duration{color:#526779;white-space:nowrap;background:#f1f5f7;border-radius:.25rem;padding:.3rem .45rem;font-size:.76rem;font-weight:650}.session-card__steps{padding:.35rem 0}.session-step{border-bottom:1px solid #edf0f2;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.75rem;min-height:4.25rem;display:grid}.session-step:last-child{border-bottom:0}.session-step__marker{color:#0b5f78;font-variant-numeric:tabular-nums;border:1px solid #d7e2e8;border-radius:50%;place-items:center;width:1.8rem;height:1.8rem;font-size:.62rem;font-weight:750;display:grid}.session-step__marker--rest{color:#718091;border-color:#e2e7eb}.session-step__copy{gap:.18rem;min-width:0;display:grid}.session-step__copy strong{color:#253b4d;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:650;overflow:hidden}.session-step__copy span{color:#788896;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.session-step__time{color:#526779;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem}.session-card__bottom{color:#8795a1;letter-spacing:.1em;justify-content:space-between;align-items:end;min-height:2.5rem;font-size:.62rem;font-weight:700;display:flex}.session-card__lanes{align-items:end;gap:.22rem;height:1.5rem;display:flex}.session-card__lanes i{background:#b7d5df;border-radius:2px 2px 0 0;width:.25rem;height:.7rem}.session-card__lanes i:nth-child(2),.session-card__lanes i:nth-child(4){background:#0b5f78;height:1.05rem}.landing__features{border-top:1px solid #dfe6eb;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,4vw,3.5rem);padding:2rem 0 2.5rem;display:grid}.landing-feature__number{color:#0b5f78;letter-spacing:.1em;font-size:.7rem;font-weight:750}.landing-feature h2{color:#203647;margin-top:.6rem;font-size:1rem;font-weight:650}.landing-feature p{color:#6a7b89;max-width:21rem;margin-top:.45rem;font-size:.86rem;line-height:1.6}.landing__footer{color:#81909c;border-top:1px solid #dfe6eb;justify-content:space-between;align-items:center;gap:1rem;min-height:3.75rem;font-size:.75rem;display:flex}.landing__footer span:first-child{color:#526779;letter-spacing:.1em;font-size:.67rem;font-weight:750}.library__home{color:#657587;background:0 0;border:0;margin:0 0 .85rem;padding:0;font-size:.78rem;font-weight:600;display:block}.library__home span{margin-right:.2rem}.library__home:hover{color:#0b5f78}.auth-page{color:#172a3a;background:#f5f7f8;min-height:100dvh}.auth-page__shell{flex-direction:column;width:min(100%,68rem);min-height:100dvh;margin:0 auto;padding:0 clamp(1.25rem,5vw,4rem);display:flex}.auth-page__nav{border-bottom:1px solid #dfe6eb;justify-content:space-between;align-items:center;min-height:5.25rem;display:flex}.auth-page__brand{color:#172a3a;letter-spacing:.1em;background:0 0;border:0;align-items:center;gap:.65rem;padding:0;font-size:.82rem;font-weight:750;display:inline-flex}.auth-page__back{color:#526779;background:0 0;border:0;font-size:.9rem}.auth-page__back:hover{color:#0b5f78}.auth-card{background:#fff;border:1px solid #dfe6eb;border-radius:.5rem;width:min(100%,27rem);margin:auto;padding:clamp(1.5rem,5vw,2.5rem)}.auth-card h1{color:#172a3a;letter-spacing:-.04em;font-size:1.8rem;font-weight:650}.auth-card__intro{color:#657587;margin-top:.5rem;font-size:.92rem;line-height:1.55}.auth-card__notice{color:#71561b;background:#fffaf0;border:1px solid #e3c88a;border-radius:.35rem;margin-top:1.25rem;padding:.75rem;font-size:.85rem}.auth-form{gap:1rem;margin-top:1.5rem;display:grid}.auth-form label{gap:.4rem;display:grid}.auth-form label>span{color:#344b5e;font-size:.82rem;font-weight:600}.auth-form input{color:#172a3a;background:#fff;border:1px solid #cbd6e2;border-radius:.35rem;width:100%;min-height:2.85rem;padding:.65rem .75rem}.auth-form input:focus-visible{outline-offset:2px;outline:3px solid #0b5f78}.auth-form small{color:#718091;font-size:.76rem}.auth-form__error{color:#a93226;font-size:.86rem}.auth-page .btn--primary{color:#fff;background:#0b5f78;border-color:#0b5f78}.auth-page .btn--primary:hover:not(:disabled){background:#08495c;border-color:#08495c}.auth-form__submit{border-radius:.35rem;min-height:2.9rem}.auth-card__separator{color:#8795a1;align-items:center;gap:.75rem;margin:1.25rem 0;font-size:.8rem;display:flex}.auth-card__separator:before,.auth-card__separator:after{content:"";background:#e8edf0;flex:1;height:1px}.auth-form__google{color:#263d50;background:#fff;border:1px solid #cbd6e2;border-radius:.35rem;width:100%;min-height:2.8rem;font-size:.9rem;font-weight:600}.auth-form__google:hover:not(:disabled){background:#f7f9fa;border-color:#7c9ab4}.auth-card__switch{color:#657587;text-align:center;margin-top:1.4rem;font-size:.85rem}.auth-card__switch button{color:#0b5f78;background:0 0;border:0;padding:0;font-weight:650}.auth-card__google-note{color:#718091;text-align:center;margin-top:1.25rem;font-size:.78rem}.auth-page__footer{color:#81909c;text-align:center;padding:1.25rem 0;font-size:.75rem}.library__account{color:#718091;margin-top:.45rem;font-size:.8rem}.library__header-actions{align-items:center;gap:1rem;display:flex}.library__signout{color:#526779;background:0 0;border:0;padding:.5rem 0;font-size:.85rem;font-weight:600}.library__signout:hover{color:#0b5f78}.library__error{color:#8f2118;background:#fff8f7;border:1px solid #e4b7b3;border-radius:.35rem;margin:-1rem 0 1.25rem;padding:.7rem .9rem;font-size:.88rem}@media (width<=760px){.landing__hero{grid-template-columns:minmax(0,1fr);gap:2.5rem;padding:3.5rem 0}.landing__hero-copy{max-width:40rem}.landing__hero h1{font-size:clamp(3rem,11vw,4.5rem)}.landing__nav-actions{gap:.75rem}.session-card{max-width:none}}@media (width<=560px){.landing__shell{padding:0 1.1rem}.landing__nav{min-height:4.5rem}.landing__hero{gap:2rem;padding:3rem 0}.landing__eyebrow{font-size:.65rem}.landing__description{font-size:1rem}.landing__actions{align-items:flex-start;gap:.8rem 1rem}.landing__primary{justify-content:center;width:100%}.session-card{padding:1.1rem}.landing__features{grid-template-columns:minmax(0,1fr);gap:1.35rem;padding:1.75rem 0}.landing-feature{grid-template-columns:2rem minmax(0,1fr);column-gap:.5rem;display:grid}.landing-feature__number{grid-row:span 2;padding-top:.1rem}.landing-feature h2,.landing-feature p{margin-top:0}.landing-feature p{margin-top:.3rem}.landing__footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:.25rem;padding:.75rem 0}}.library{color:#172a3a;background-color:#f5f7f8;background-image:none}.library .page{flex-direction:column;max-width:68rem;min-height:100dvh;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,3vw,2rem) 3rem;display:flex}.library__header{align-items:center;margin-bottom:2rem}.library__eyebrow{color:#0b5f78;letter-spacing:.14em;margin-bottom:.45rem;font-size:.72rem;font-weight:700}.library__header h1{color:#172a3a;letter-spacing:-.045em;font-size:clamp(2rem,4vw,2.6rem);font-weight:650;line-height:1.08}.library__intro{color:#657587;margin-top:.5rem;font-size:.95rem}.library__new{white-space:nowrap;border-radius:.5rem;min-height:2.8rem;padding:.65rem 1rem}.library__new span{margin-right:.25rem;font-size:1.15rem;font-weight:400}.library__list{flex:1;grid-template-columns:repeat(auto-fit,minmax(min(100%,27rem),1fr));align-content:center;align-items:stretch;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.workout-card{background:#fff;border:1px solid #dfe6eb;border-radius:.5rem;grid-template-rows:auto auto auto 1fr;gap:1.25rem;min-width:0;min-height:19rem;padding:1.35rem;display:grid}.workout-card__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.workout-card__header h2{color:#172a3a;letter-spacing:-.02em;overflow-wrap:anywhere;min-width:0;font-size:1.25rem;font-weight:620;line-height:1.3}.workout-card__outline{color:#526779;flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;font-size:.85rem;line-height:1.45;display:flex}.workout-outline__item{min-width:0}.workout-outline__item:not(:first-child):before{content:"·";color:#9aa8b4;margin-right:.6rem}.workout-outline__item--rest{color:#718091}.workout-outline__more{color:#718091;white-space:nowrap;font-size:.78rem}.workout-card__metrics{border-top:1px solid #e8edf0;border-bottom:1px solid #e8edf0;flex-wrap:wrap;gap:1.5rem;padding:1rem 0;display:flex}.workout-metric{gap:.2rem;display:grid}.workout-metric__value{color:#172a3a;font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:650;line-height:1.15}.workout-metric__unit{font-size:.85rem;font-weight:550}.workout-metric__label{color:#718091;letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:600}.workout-card__footer{flex-direction:column;justify-content:space-between;align-items:stretch;gap:1rem;display:flex}.workout-card__sections{flex-wrap:wrap;align-items:center;gap:.4rem;min-height:1.5rem;display:flex}.workout-section{color:#526779;background:#f1f5f7;border-radius:.25rem;padding:.25rem .5rem;font-size:.72rem;font-weight:600}.workout-card__warn{color:#a35325;font-size:.8rem;font-weight:600}.workout-card__start{border-radius:.4rem;min-height:2.75rem}.workout-menu{flex:none;position:relative}.workout-menu summary{color:#657587;cursor:pointer;border:1px solid #0000;border-radius:.4rem;place-items:center;width:2.25rem;height:2.25rem;list-style:none;display:grid}.workout-menu summary::-webkit-details-marker{display:none}.workout-menu summary:hover,.workout-menu[open] summary{color:#172a3a;background:#f7f9fa;border-color:#dfe6eb}.workout-menu summary span{letter-spacing:.12em;font-size:1.1rem;line-height:1}.workout-menu__items{z-index:2;background:#fff;border:1px solid #dfe6eb;border-radius:.45rem;min-width:9rem;padding:.3rem;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 6px 18px #172a3a1a}.workout-menu__items button{color:#263d50;text-align:left;background:0 0;border:0;border-radius:.25rem;width:100%;padding:.55rem .65rem;font-size:.9rem}.workout-menu__items button:hover,.workout-menu__items button:focus-visible{background:#f1f5f7}.workout-menu__items .workout-menu__delete{color:#a93226}.library__empty{text-align:center;border:1px dashed #cbd6df;border-radius:.5rem;padding:3rem 1rem}@media (width<=560px){.library .page{padding-top:1.5rem}.library__header{align-items:flex-start;margin-bottom:1.5rem}.library__intro{max-width:15rem}.library__header-actions{flex-direction:column-reverse;align-items:flex-end;gap:.35rem}.library__new{min-height:2.55rem;padding:.55rem .7rem}.workout-card{min-height:17rem;padding:1.1rem}}.editor{gap:1rem;display:grid}.field{gap:.35rem;display:grid}.field>span{color:var(--muted);font-size:.9rem}.field input,.field textarea{background:var(--surface);border:1px solid var(--border);border-radius:.6rem;width:100%;padding:.7rem .8rem}.field textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem}.help{color:var(--muted);font-size:.9rem}.help summary{cursor:pointer}.help ul{gap:.25rem;margin:.5rem 0;padding-left:1.2rem;display:grid}.help code{color:var(--text);background:var(--surface);border-radius:.3rem;margin-right:.4rem;padding:.1rem .35rem}.issues{border:1px solid var(--danger);color:var(--danger);border-radius:.6rem;gap:.25rem;margin:0;padding:.75rem 1rem .75rem 1.5rem;font-size:.95rem;display:grid}.preview{background:var(--surface);border:1px solid var(--border);border-radius:.9rem;padding:.9rem 1rem}.preview h2{color:var(--muted);margin-bottom:.5rem;font-size:.95rem}.preview ol{margin:0;padding:0;list-style:none}.preview__row{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;padding:.35rem 0;display:flex}.preview__row:first-child{border-top:0}.preview__row--rest{color:#f0b46a}.preview__time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.editor__actions{justify-content:flex-end;gap:.5rem;display:flex}.timer{color:#0b2545;background:#fff;flex-direction:column;min-height:100dvh;padding:.75rem 1rem 1rem;display:flex}.timer__top{justify-content:space-between;width:min(100%,40rem);margin:0 auto;display:flex}.timer .btn{color:#24425e;background:#fff;border-color:#cbd6e2;transition:background-color .12s,border-color .12s,color .12s,transform .12s}.timer .btn:hover:not(:disabled){background:#f1f6fa;border-color:#7c9ab4}.timer .btn:active:not(:disabled){transform:translateY(1px)}.timer .btn:focus-visible{outline-color:#0b5f78}.timer .btn--primary{color:#fff;background:#0b5f78;border-color:#0b5f78}.timer .btn--primary:hover:not(:disabled){background:#08495c;border-color:#08495c}.timer .btn:disabled{opacity:.5}.timer__main{text-align:center;flex:1;grid-template-rows:auto minmax(0,1fr) auto;gap:.5rem;width:min(100%,40rem);min-height:0;margin:0 auto;display:grid}.timer__step{align-content:start;justify-items:center;gap:.35rem;padding:clamp(1rem,4vh,2.5rem) 0 .5rem;display:grid}.timer__title{text-transform:uppercase;letter-spacing:.12em;color:#5b6b80;font-size:.95rem;font-weight:700}.timer__label{font-size:clamp(2rem,9vw,3.5rem);line-height:1.1}.timer__detail{color:#5b6b80;min-height:1.4em;font-size:1.15rem}.timer__face{background:#f1f4f9;border:2px solid #d5deeb;border-radius:1.5rem;place-self:center;place-items:center;width:min(92vw,34rem);min-height:min(38vh,19rem);margin:.25rem 0;padding:1.5rem 1rem;display:grid;position:relative;overflow:hidden}.timer__fill{transform-origin:0;will-change:transform;background:linear-gradient(90deg,#fff 0%,#d9edf4 55%,#9bcddd 100%);position:absolute;inset:0;transform:scaleX(0)}.timer__clock{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:#0b2545;font-size:clamp(4.5rem,22vw,9rem);font-weight:800;line-height:1;position:relative}.timer__face--idle .timer__clock{opacity:.65}.timer__next{color:#5b6b80;align-self:end;min-height:1.4em;padding-bottom:.5rem;font-size:.95rem}.timer__controls{grid-template-columns:minmax(0,1fr) minmax(8rem,1.35fr) minmax(0,1fr);gap:.75rem;width:min(100%,34rem);margin:0 auto;display:grid}.timer__controls .btn{min-height:3.25rem}.timer__controls .btn--step{padding:.6rem .5rem}.timer__controls .btn--big{font-size:1.1rem;font-weight:700}.timer__foot{color:#465e75;border-top:1px solid #e3e8ee;align-items:center;gap:1rem;width:min(100%,40rem);margin:1rem auto 0;padding-top:.75rem;font-size:.9rem;display:flex}.timer__foot .check{cursor:pointer;align-items:center;gap:.4rem;display:inline-flex}.timer__foot input{accent-color:#0b5f78}.timer__left{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.timer__foot .btn{padding:.45rem .75rem}.timer--warn .timer__clock{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.55}}@media (width<=420px){.timer{padding:.6rem .75rem .75rem}.timer__controls{gap:.4rem}.timer__controls .btn--step{font-size:.85rem}.timer__foot{gap:.65rem;font-size:.8rem}}
