@font-face{font-family:Cascadia Mono;src:url(/apps/tockme/fonts/Cascadia_Mono/CascadiaMono-VariableFont_wght.ttf) format("truetype");font-style:normal;font-weight:200 700;font-display:swap}@font-face{font-family:Cascadia Mono;src:url(/apps/tockme/fonts/Cascadia_Mono/CascadiaMono-Italic-VariableFont_wght.ttf) format("truetype");font-style:italic;font-weight:200 700;font-display:swap}:root{color:#17201b;background:#f3f5f1;font-family:Cascadia Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-synthesis:none;text-rendering:optimizeLegibility;--safe-top: max(18px, env(safe-area-inset-top));--safe-bottom: max(18px, env(safe-area-inset-bottom))}*{box-sizing:border-box}html,body,#app{width:100%;min-height:100%;margin:0}body{min-height:100svh;overflow-x:hidden;background:#f3f5f1;transition:background-color .28s ease,color .28s ease;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}button,input{font:inherit}button{color:inherit;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid currentColor;outline-offset:3px}.setup-screen,.run-screen{width:min(100%,760px);min-height:100svh;margin:0 auto;padding:var(--safe-top) clamp(20px,5vw,48px) var(--safe-bottom)}.setup-screen{display:flex;flex-direction:column}.workout-form{display:flex;flex:1;flex-direction:column}.volume-control{display:flex;align-items:center;justify-content:center;height:44px;margin:0 auto}.volume-icon{display:grid;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;place-items:center}.volume-icon svg{width:21px;height:21px;stroke-width:1.8}.setup-header{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:clamp(26px,6vh,64px) 0 clamp(28px,5vh,52px)}.setup-header p{margin:0 0 10px;color:#627068;font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.setup-header h1{min-width:0;margin:0;overflow-wrap:anywhere;font-size:clamp(3rem,6vh,4rem);font-weight:730;line-height:.84;letter-spacing:0}.change-timer-button{display:grid;flex:0 0 auto;width:52px;height:52px;margin-top:4px;padding:0;border:1px solid #bfc7c1;border-radius:25%;background:transparent;place-items:center}.change-timer-button:active{background:#dfe4df}.change-timer-button svg{width:22px;height:22px}.sets-row,.timer-row{display:grid;grid-template-columns:minmax(0,1fr);align-content:center;gap:0;min-height:118px;padding-bottom:18px}.row-label{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;font-size:clamp(1rem,8vw,2.2rem);font-weight:900;text-transform:uppercase}.sets-row .row-label:after{width:52px;height:6px;content:"";flex:0 0 6px}.label--prepare{color:#c97a00}.label--work{color:#087b45}.label--rest{color:#075fb8}.stepper{display:grid;grid-template-columns:58px minmax(0,1fr) 58px;align-items:center;width:100%;gap:0}.stepper button,.time-stepper button{display:grid;width:52px;height:52px;padding:0;border:1px solid #bfc7c1;border-radius:25%;background:transparent;place-items:center}.stepper button:active,.time-stepper button:active{background:#dfe4df}.stepper svg,.time-stepper svg{width:22px;height:22px}.stepper input,.time-fields input{font-size:3.5rem}.stepper input{width:100%;height:68px;min-width:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:center;font-variant-numeric:tabular-nums;font-weight:720;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.time-fields input:last-child{text-align:left}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.time-fields{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;column-gap:42px;width:100%;min-width:0}.time-stepper{display:grid;grid-template-columns:58px minmax(0,1fr) 58px;align-items:center;width:100%;gap:8px}.time-fields input{width:100%;min-width:0;height:68px;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font-variant-numeric:tabular-nums;font-weight:720;text-align:right;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.time-fields input::-webkit-inner-spin-button,.time-fields input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.time-colon{position:absolute;top:50%;left:50%;width:42px;font-size:3rem;font-weight:720;line-height:1;text-align:center;transform:translate(-50%,-50%);pointer-events:none}.form-error{min-height:20px;margin:12px 0 4px;color:#b3362d;font-size:.86rem;font-weight:650;text-align:center}.start-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 36px;border-radius:16px;background:#f3f5f1;border:2px solid #303530;color:#252424;font-size:2.75rem;font-weight:700;margin-top:auto;margin-bottom:32px;text-transform:uppercase}.start-button:active{transform:translateY(1px)}.start-button svg{width:32px;height:32px;fill:currentColor;stroke-width:1.5}.timers-screen{gap:0}.timers-header{display:flex;align-items:center;gap:14px;padding:clamp(20px,5vh,44px) 0 clamp(16px,4vh,30px)}.timers-header h1{min-width:0;margin:0;overflow-wrap:anywhere;font-size:clamp(1.8rem,7vw,2.6rem);font-weight:730;line-height:.9}.icon-button{display:grid;flex:0 0 auto;width:48px;height:48px;padding:0;border:1px solid #bfc7c1;border-radius:25%;background:transparent;place-items:center}.icon-button:active{background:#dfe4df}.icon-button:disabled{opacity:.35}.icon-button svg{width:20px;height:20px}.timer-list{display:flex;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none}.timer-card{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid #bfc7c1;border-radius:16px}.timer-card--selected{border:2px solid #303530;padding:15px}.timer-card-main{display:flex;align-items:center;gap:8px}.timer-name-input{flex:1;min-width:0;height:46px;padding:4px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:inherit;font-size:1.4rem;font-weight:700}.timer-name-input:hover{border-color:#d3d9d3}.timer-name-input:focus{border-color:#303530;background:#fff;outline:none}.rename-button{width:42px;height:42px}.rename-button svg{width:18px;height:18px}.timer-summary{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:0 4px;font-variant-numeric:tabular-nums;font-weight:700}.stage-pill{font-size:1.15rem}.sets-x{color:#627068;font-weight:650}.timer-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.delete-button{width:44px;height:44px}.select-button{padding:11px 30px;border:2px solid #303530;border-radius:12px;background:transparent;color:#252424;font-size:1.1rem;font-weight:700;text-transform:uppercase}.select-button:active{transform:translateY(1px)}.add-timer-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:20px 0 32px;padding:15px;border:2px dashed #bfc7c1;border-radius:16px;background:transparent;color:#303530;font-size:1.3rem;font-weight:700;text-transform:uppercase}.add-timer-button:active{background:#dfe4df}.add-timer-button svg{width:22px;height:22px}.view-run{color:#102019}.view-run.stage-prepare{background:#f4d77f}.view-run.stage-work{background:#9ed8b5}.view-run.stage-rest{background:#9cc5ed}.view-run.stage-complete{background:#f4f7f4}.run-screen{display:grid;grid-template-rows:auto 1fr;width:min(100%,920px)}.workout-dial{position:relative;align-self:center;width:min(100%,76vh,720px);aspect-ratio:1;margin:0 auto}.progress-ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.ring-tracks,.ring-progress{transition:opacity .25s ease}.run-content{position:absolute;top:11%;right:11%;bottom:11%;left:11%;display:grid;grid-template-rows:auto 1fr auto auto auto;align-items:center;min-width:0;padding:7% 4% 9%;text-align:center}.sets-remaining{margin:0;font-size:clamp(.78rem,4.5vw,1rem);font-weight:650;text-transform:uppercase}.sets-remaining strong{font-size:2em;font-variant-numeric:tabular-nums}.stage-name{align-self:end;max-width:100%;margin:0;overflow-wrap:anywhere;color:#07191052;font-size:clamp(2.5rem,12vw,5rem);font-weight:780;line-height:.82;letter-spacing:0;text-transform:uppercase}.time-remaining{display:block;margin:0;font-size:clamp(4.3rem,18vw,9.8rem);font-variant-numeric:tabular-nums;font-weight:700;line-height:1;letter-spacing:0}.wake-lock-message{max-width:36ch;margin:8px auto 0;padding:8px 12px;border:1px solid rgba(13,31,21,.32);border-radius:10px;background:#ffffff47;font-size:clamp(.68rem,2.8vw,.82rem);font-weight:650;line-height:1.3}.run-controls{display:flex;justify-content:center;gap:clamp(12px,4vw,22px);margin-top:7%}.run-controls button{display:grid;width:clamp(52px,13vw,68px);height:clamp(52px,13vw,68px);padding:0;border:1px solid rgba(13,31,21,.32);border-radius:50%;background:#ffffff2e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);place-items:center}.run-controls button:active{background:#ffffff57}.run-controls svg{width:24px;height:24px;fill:currentColor;stroke-width:1.7}.stage-complete .run-controls button{border-color:#ffffff52;background:#ffffff1a}@media(max-width:420px){.setup-screen,.run-screen{padding-right:18px;padding-left:18px}.setup-header{padding-top:18px;padding-bottom:26px}.setup-header h1{font-size:clamp(3.3rem,16vw,4.2rem)}.sets-row,.timer-row{grid-template-columns:minmax(0,1fr);gap:8px;min-height:112px}.stepper,.time-stepper{grid-template-columns:54px minmax(0,1fr) 54px}.stepper button,.time-stepper button{width:54px;height:54px}.time-fields input,.stepper input{font-size:3rem}.wordmark{bottom:30px}.workout-dial{width:min(100%,69vh)}}@media(max-height:700px){.setup-screen{padding-top:max(10px,env(safe-area-inset-top))}.volume-control{height:38px}.setup-header{padding-top:8px;padding-bottom:18px}.setup-header h1{font-size:3.2rem}.sets-row,.timer-row{min-height:104px}.start-button{min-height:62px}.workout-dial{width:min(100%,72vh)}.run-content{padding-top:5%;padding-bottom:7%}}@media(min-width:760px){.timer-row,.sets-row{min-height:108px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
