.stitch-mark{--stitch-ink:rgb(var(--ff-primary));--stitch-paper:rgb(var(--ff-surface));--completion-light:rgb(var(--ff-on-primary));position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;color:var(--stitch-ink);pointer-events:none;font-size:12px;font-weight:500;line-height:1;transition:transform .12s ease}.stitch-mark[data-size=sm]{width:28px;height:28px;font-size:11px}.stitch-mark[data-shape=oval]{width:46px}.stitch-mark[data-shape=oval][data-size=sm]{width:36px;max-width:100%}.check-control:has(.stitch-mark){width:46px}.stitch-mark[data-shape=capsule]{width:100%}.stitch-art{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transition:filter .18s ease}.stitch-edge{fill:var(--stitch-paper);transition:fill .3s ease}.stitch-edge,.stitch-progress{stroke:var(--stitch-ink);stroke-width:1.5}.stitch-progress{fill:none;stroke-linecap:round;transition:stroke-dashoffset .3s ease,stroke .3s ease}.stitch-mark:has(.completion-check) .stitch-progress{transition:stroke-dashoffset .6s ease,stroke .3s ease}.stitch-mark[data-progress=false] .stitch-progress{opacity:0}.stitch-content{position:relative}.stitch-content,.stitch-value{display:flex;align-items:center;justify-content:center}.completion-rest,.completion-skip{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);fill:none;stroke:rgb(var(--ff-fg-soft));stroke-width:2;stroke-linecap:round}.completion-rest path,.completion-skip path{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset .2s ease,opacity .1s ease}.stitch-mark[data-skipped=true] .stitch-edge{fill:color-mix(in srgb,rgb(var(--ff-muted)) 8%,rgb(var(--ff-surface)));stroke:rgb(var(--ff-muted)/.7);stroke-width:1.5}.stitch-mark[data-skipped=true] .stitch-progress{opacity:0}.stitch-mark[data-skipped=true] .stitch-value{visibility:hidden}.stitch-mark[data-skipped=true][data-allowed-skip=false] .completion-skip path{stroke-dashoffset:0;opacity:1;transition-delay:60ms}.stitch-mark[data-skipped=true][data-allowed-skip=false] .completion-skip path+path{transition-delay:.27s}.stitch-mark[data-allowed-skip=true] .stitch-edge{fill:rgb(var(--ff-primary-soft));stroke:var(--stitch-ink)}.stitch-mark[data-allowed-skip=true] .stitch-progress{opacity:0}.stitch-mark[data-allowed-skip=true] .completion-rest{stroke:var(--stitch-ink)}.stitch-mark[data-allowed-skip=true] .completion-rest path{stroke-dashoffset:0;opacity:1;transition-delay:70ms}.completion-check{fill:none;stroke:var(--completion-light);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.completion-check path{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset .45s ease,opacity .15s ease}.stitch-mark[data-completed=true]{color:var(--completion-light)}.stitch-mark[data-completed=true] .stitch-edge{fill:var(--stitch-ink)}.stitch-mark[data-completed=true] .stitch-progress{stroke:var(--completion-light)}.stitch-mark[data-completed=true] .completion-check path{stroke-dashoffset:0;opacity:1;transition-delay:70ms}.stitch-mark[data-state=future]{opacity:.3}.stitch-mark[data-state=off]{opacity:.55}.stitch-mark[data-today=true] .stitch-edge{stroke-width:2}@media(hover:hover) and (pointer:fine) and (forced-colors:none){:is(.check-control:not(:disabled),button[data-habit-record][aria-pressed]:not(:disabled),.recording-amount-shell:has(.recording-amount:not(:disabled))):hover .stitch-mark[data-completed=false]{--stitch-paper:rgb(var(--ff-primary-soft)/.65)}:is(.check-control:not(:disabled),button[data-habit-record][aria-pressed]:not(:disabled),.recording-amount-shell:has(.recording-amount:not(:disabled))):hover .stitch-art{filter:drop-shadow(0 2px 3px rgb(var(--ff-primary)/.18))}}.recording-amount-shell:focus-within .stitch-mark,.stitch-mark[data-active=true],button:focus-visible .stitch-mark{outline:2px solid rgb(var(--ff-primary)/.5);outline-offset:3px;border-radius:999px}.check-control:has(.stitch-mark):focus-visible,button[data-habit-record]:has(.stitch-mark):focus-visible{outline:none;box-shadow:none}.recording-amount-shell[data-invalid=true] .stitch-edge{stroke:rgb(var(--ff-danger))}.habit-daily-log .recording-amount-shell[data-skipped=true]:focus-within,.recording-amount-shell[data-skipped=true]:focus-within{width:46px}button[data-habit-record]{touch-action:pan-y;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.recording-amount-shell:has(.recording-amount:not(:disabled):active) .stitch-mark,button[data-habit-record]:not(:disabled):active .stitch-mark{transform:scale(.82)}@media(prefers-reduced-motion:reduce){.completion-check path,.completion-rest path,.completion-skip path,.stitch-art,.stitch-edge,.stitch-mark,.stitch-progress{transition:none!important}.recording-amount-shell:has(.recording-amount:active) .stitch-mark,button[data-habit-record]:active .stitch-mark{transform:none}}@media(forced-colors:active){.stitch-mark{--stitch-ink:ButtonText;--stitch-paper:Canvas;--completion-light:Canvas}.stitch-mark[data-skipped=true] .stitch-edge{fill:ButtonFace;stroke:GrayText}.stitch-mark[data-allowed-skip=true] .stitch-edge{fill:Canvas;stroke:ButtonText}.completion-skip,.stitch-mark[data-allowed-skip=true] .completion-rest{stroke:ButtonText}.recording-amount-shell:focus-within .stitch-mark,button:focus-visible .stitch-mark{outline-color:Highlight}}