:root{--ground:#f3efe8;--surface:#fbf9f5;--surface-emph:#eae4da;--hairline:#d8d0c4;--field-line:#9c8769;--ink:#211c19;--ink-dim:#6e645c;--ink-faint:#8e8378;--ink-on:#f8f4ed;--ink-hover:#342b26;--accent:#7a1f2b;--accent-hover:#8e2634;--accent-press:#641822;--accent-fill:#7a1f2b;--accent-line:#7a1f2b;--accent-text:#7a1f2b;--accent-on:#f8f4ed;--cycle:#38355e;--cycle-line:#38355e;--cycle-surface:#e4e2ec;--scrim:#211c1994;--serif:"Newsreader", Georgia, "Times New Roman", serif;--sans:"Archivo", "Helvetica Neue", Arial, sans-serif;--sp-2:2px;--sp-4:4px;--sp-8:8px;--sp-12:12px;--sp-16:16px;--sp-20:20px;--sp-24:24px;--sp-32:32px;--sp-40:40px;--sp-56:56px;--r-sm:4px;--r-md:7px;--r-lg:8px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#181411;--surface:#221c18;--surface-emph:#2b241f;--hairline:#3b332c;--field-line:#756557;--ink:#f0e9de;--ink-dim:#a0938a;--ink-faint:#7e7269;--ink-on:#181411;--ink-hover:#fffcf6;--accent:#c04450;--accent-hover:#ca4f5b;--accent-press:#96222e;--accent-fill:#a62b38;--accent-line:#c04450;--accent-text:#f0e9de;--accent-on:#fcf7f0;--cycle:#827eb9;--cycle-line:#6f6ba6;--cycle-surface:#1e1c26;--scrim:#080605ad}}:root[data-theme=dark]{--ground:#181411;--surface:#221c18;--surface-emph:#2b241f;--hairline:#3b332c;--field-line:#756557;--ink:#f0e9de;--ink-dim:#a0938a;--ink-faint:#7e7269;--ink-on:#181411;--ink-hover:#fffcf6;--accent:#c04450;--accent-hover:#ca4f5b;--accent-press:#96222e;--accent-fill:#a62b38;--accent-line:#c04450;--accent-text:#f0e9de;--accent-on:#fcf7f0;--cycle:#827eb9;--cycle-line:#6f6ba6;--cycle-surface:#1e1c26;--scrim:#080605ad}h1,h2,h3,h4{font-family:var(--serif);letter-spacing:-.012em;text-wrap:balance;margin:0;font-weight:600}.t-load-xl,.t-load-lg,.t-load-md,.t-meta,.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.t-display{font-family:var(--serif);letter-spacing:-.015em;font-size:34px;font-weight:600;line-height:1.06}.t-title{font-family:var(--serif);letter-spacing:-.012em;font-size:26px;font-weight:600;line-height:1.14}.t-heading{font-family:var(--serif);letter-spacing:-.008em;font-size:20px;font-weight:600;line-height:1.25}.t-load-xl{font-family:var(--serif);letter-spacing:-.02em;font-size:34px;font-weight:600;line-height:1}.t-load-lg{font-family:var(--serif);letter-spacing:-.015em;font-size:24px;font-weight:600;line-height:1}.t-load-md{font-family:var(--serif);font-size:17px;font-weight:600;line-height:1.2}.t-body{font-size:15px;line-height:1.55}.t-strong{font-size:15px;font-weight:600;line-height:1.5}.t-label{letter-spacing:.02em;font-size:12px;font-weight:600;line-height:1.35}.t-meta{letter-spacing:.03em;color:var(--ink-dim);font-size:11.5px;font-weight:500;line-height:1.4}.t-micro{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-dim);font-size:10.5px;font-weight:600;line-height:1.3}:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{flex-direction:column;min-height:100dvh;display:flex}.screen{width:100%;max-width:480px;padding:var(--sp-16) var(--sp-16) var(--sp-32);gap:var(--sp-16);flex-direction:column;flex:1;margin:0 auto;display:flex}.screen-head{justify-content:space-between;align-items:baseline;gap:var(--sp-12);display:flex}.stack{gap:var(--sp-12);flex-direction:column;display:flex}.row{align-items:center;gap:var(--sp-8);flex-wrap:wrap;display:flex}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-16)}.rail-accent{border-left:3px solid var(--accent-line)}.rail-cycle{border-left:3px solid var(--cycle-line)}.rail-ink{border-left:3px solid var(--ink)}.rail-hairline{border-left:3px solid var(--hairline)}.btn{font-family:var(--sans);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #0000;min-height:44px;padding:11px 20px;font-size:15px;font-weight:500;line-height:1.2;transition:background-color .16s,border-color .16s,color .16s}.btn:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}.btn-primary{background:var(--accent-fill);color:var(--accent-on)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-press)}.btn-secondary{border-color:var(--ink);color:var(--ink)}.btn-secondary:hover:not(:disabled){border-color:var(--accent-line);background:var(--surface-emph)}.btn-secondary:active:not(:disabled){color:var(--accent-text)}.btn-quiet{color:var(--accent-text);border:0;border-bottom:1px solid var(--accent-line);border-radius:0;padding:11px 4px}.btn-quiet:hover:not(:disabled),.btn-quiet:active:not(:disabled){background:var(--surface-emph)}.btn-destructive{background:var(--ink);color:var(--ink-on)}.btn-destructive:hover:not(:disabled),.btn-destructive:active:not(:disabled){background:var(--ink-hover)}.btn:disabled{background:var(--surface-emph);color:var(--ink-faint);cursor:default;border-color:#0000}.btn-full{width:100%;padding:14px 20px}.btn-bars{vertical-align:middle;gap:3px;margin-left:8px;display:inline-flex}.btn-bars i{opacity:.35;background:currentColor;width:3px;height:10px;animation:1.05s ease-in-out infinite btn-pulse}.btn-bars i:nth-child(2){animation-delay:.14s}.btn-bars i:nth-child(3){animation-delay:.28s}@keyframes btn-pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.btn-bars i{animation:none}.btn-bars i:first-child{opacity:.4}.btn-bars i:nth-child(2){opacity:.7}.btn-bars i:nth-child(3){opacity:1}}.chip{font-family:var(--sans);border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface);min-height:36px;color:var(--ink);cursor:pointer;padding:8px 12px;font-size:13px}.chip[aria-pressed=true]{border-color:var(--accent-line);background:var(--surface-emph);color:var(--accent-text)}.chip-cyc[aria-pressed=true]{border-color:var(--cycle-line);color:var(--cycle);background:var(--cycle-surface)}.chip:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}.strip{border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface);grid-template-columns:repeat(5,1fr);display:grid;overflow:hidden}.strip-cell{padding:var(--sp-8) var(--sp-4);border:0;border-left:1px solid var(--hairline);background:var(--surface);min-height:60px;color:var(--ink);cursor:pointer;flex-direction:column;align-items:center;gap:2px;display:flex}.strip-cell:first-child{border-left:0}.strip-cell[aria-expanded=true]{background:var(--surface-emph)}.strip-cell.cyc{background:var(--cycle-surface);color:var(--cycle)}.strip-cell:focus-visible{outline:2px solid var(--accent-line);outline-offset:-2px}.strip-unset{color:var(--ink-dim)}.strip-editor{border:1px solid var(--hairline);border-radius:0 0 var(--r-md) var(--r-md);background:var(--surface);padding:var(--sp-12);gap:var(--sp-8);border-top:0;flex-direction:column;display:flex}.suggestion-kicker{color:var(--ink-dim);margin-bottom:2px}.suggestion-consequence{color:var(--ink-dim);margin:var(--sp-4) 0 var(--sp-12)}.suggestion-settled{color:var(--ink-dim)}.sync{color:var(--ink-dim);align-items:center;gap:6px;display:inline-flex}.sync-dot{background:var(--ink-dim);border-radius:1px;width:7px;height:7px}.sync-dot.queued{background:var(--accent-fill)}.sync-rejected{color:var(--ink)}.nav{background:var(--surface);border-top:1px solid var(--hairline);grid-template-columns:repeat(4,1fr);display:grid;position:sticky;bottom:0}.nav a{padding:var(--sp-12) var(--sp-4);text-align:center;color:var(--ink-dim);border-top:2px solid #0000;min-height:48px;text-decoration:none}.nav a[aria-current=page]{border-top-color:var(--accent-line);color:var(--accent-text)}.field{gap:var(--sp-4);flex-direction:column;display:flex}.field input,.field select{font-family:var(--sans);border:1px solid var(--field-line);border-radius:var(--r-sm);background:var(--surface);min-height:44px;color:var(--ink);padding:11px 12px;font-size:16px}.field input::placeholder{color:var(--ink-faint)}.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}.form-error{color:var(--ink);border-left:3px solid var(--ink);padding-left:var(--sp-8)}.set-row{align-items:baseline;gap:var(--sp-8);padding:var(--sp-8) 0;border-top:1px solid var(--hairline);grid-template-columns:62px 1fr auto;display:grid}.set-row:first-of-type{border-top:0}.set-row.amrap{background:var(--surface-emph);border-left:3px solid var(--accent-line);padding-left:var(--sp-8);margin-left:calc(-1 * var(--sp-8))}.set-row.amrap .set-load{color:var(--accent-text)}.set-note{color:var(--ink-dim);grid-column:1/-1}.badge{border-radius:var(--r-sm);border:1px solid var(--accent-line);background:var(--accent-fill);color:var(--accent-on);align-items:center;padding:3px 8px;display:inline-flex}.badge-hollow{color:var(--accent-text);background:0 0}.badge-ink{background:var(--ink);border-color:var(--ink);color:var(--ink-on)}.empty p{margin:0 0 var(--sp-4)}.empty p:last-child{color:var(--ink-dim);margin-bottom:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stepper{gap:var(--sp-4);flex-direction:column;display:flex}.stepper-label{color:var(--ink-dim)}.stepper-controls{align-items:center;gap:var(--sp-8);border:1px solid var(--field-line);border-radius:var(--r-md);padding:var(--sp-4);grid-template-columns:auto 1fr auto;display:grid}.stepper-value{flex-direction:column;align-items:center;display:flex}.stepper-unit,.stepper-limit,.set-row.confirmed .set-load,.set-row.confirmed .t-body{color:var(--ink-dim)}.set-row.edited{border-left:3px solid var(--ink);padding-left:var(--sp-8);margin-left:calc(-1 * var(--sp-8))}.set-edit,.set-actions{grid-column:1/-1}.set-edit{gap:var(--sp-12);padding:var(--sp-12) 0;flex-direction:column;display:flex}.set-actions{align-items:center;gap:var(--sp-8);padding-top:var(--sp-8);display:flex}.rest-head{justify-content:space-between;align-items:baseline;gap:var(--sp-12);display:flex}.rest-bar{background:var(--hairline);height:2px;margin:var(--sp-8) 0;overflow:hidden}.rest-bar span{background:var(--accent-fill);transform-origin:0;height:100%;transition:transform .24s linear;display:block}@media (prefers-reduced-motion:reduce){.rest-bar span{transition:none}}.session{padding-bottom:var(--sp-16)}.action-bar{padding:var(--sp-12) 0 var(--sp-8);background:var(--ground);border-top:1px solid var(--hairline);margin-top:auto;position:sticky;bottom:0}.summary{gap:var(--sp-12);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));margin:0;display:grid}.summary dt{margin-bottom:2px}.summary dd{margin:0}.month-weekdays,.month-grid{grid-template-columns:repeat(7,1fr);display:grid}.month-weekdays{margin-bottom:var(--sp-4);gap:2px}.month-weekdays span{text-align:center;color:var(--ink-dim)}.month-grid{gap:2px}.day{min-height:48px;padding:var(--sp-4) 0 7px;border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex;position:relative}.day.outside .day-number{color:var(--ink-faint)}.day.today{border-color:var(--accent-line)}.day.selected{border-width:2px;border-color:var(--accent-line);background:var(--surface-emph)}.day:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}.day-number{z-index:1;position:relative}.day-wash{border-radius:var(--r-sm);background:var(--cycle-surface);z-index:0;position:absolute;inset:0}.day-mark{z-index:1;width:7px;height:7px;position:relative}.day-mark.done{background:var(--accent-fill)}.day-mark.finish_in_15{background:linear-gradient(to right, var(--accent-fill) 0 50%, transparent 50% 100%);box-shadow:inset 0 0 0 1px var(--accent-line)}.day-mark.lighter{box-shadow:inset 0 0 0 1px var(--accent-line)}.day-mark.skipped{background:var(--ink-dim);height:1px}.day-bleed{background:var(--cycle);z-index:1;width:60%;height:3px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.ribbon{height:26px;margin-top:var(--sp-8);position:relative}.ribbon-segment{background:var(--cycle-surface);justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.ribbon-segment.logged{border-bottom:2px solid var(--cycle-line)}.ribbon-segment.estimated{-webkit-mask-image:linear-gradient(90deg,#0000,#000 22% 78%,#0000);mask-image:linear-gradient(90deg,#0000,#000 22% 78%,#0000)}.ribbon-label{color:var(--cycle);white-space:nowrap;padding:0 2px}.sheet-phase{padding-left:var(--sp-8)}.scrim{background:var(--scrim);z-index:10;position:fixed;inset:0}.sheet{z-index:11;width:100%;max-width:480px;max-height:80dvh;padding:var(--sp-16);background:var(--surface);border-top:1px solid var(--hairline);border-radius:8px 8px 0 0;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.chart-head{justify-content:space-between;align-items:baseline;gap:var(--sp-8);min-height:20px;display:flex}.chart-readout{min-height:1.2em;color:var(--ink-dim);text-align:right}.chart-svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart-grid{stroke:var(--hairline);stroke-width:1px}.chart-grid.baseline{stroke:var(--field-line)}.chart-tick{fill:var(--ink-dim);text-anchor:end;font-variant-numeric:tabular-nums;font-size:9px}.chart-line{fill:none;stroke:var(--accent-line);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-line.step{stroke:var(--ink-dim);stroke-width:2px;stroke-dasharray:none}.chart-endpoint-ring{fill:var(--surface)}.chart-endpoint{fill:var(--accent-fill)}.chart-crosshair{stroke:var(--ink-dim);stroke-width:1px}.chart-marker{fill:var(--surface);stroke:var(--ink);stroke-width:2px}.chart-bar{fill:var(--accent-fill)}.chart-bar.below{fill:var(--ink-dim)}.chart-loading{color:var(--ink-dim);margin:0}.legend{gap:var(--sp-12);color:var(--ink-dim);margin:0;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:5px;display:flex}.legend-mark{background:var(--accent-line);width:14px;height:2px}.legend-mark.step{background:var(--ink-dim)}.chart-table{border-collapse:collapse;width:100%}.chart-table th,.chart-table td{text-align:left;border-top:1px solid var(--hairline);padding:4px 6px;font-weight:400}.chart-table thead th{color:var(--ink-dim);border-top:0}.chart-table td.num{text-align:right}.chart-axis-label{fill:var(--ink-dim);text-anchor:middle;font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:8px}.chart-axis-label.start{text-anchor:start}.chart-axis-label.end{text-anchor:end}.accessory-row{justify-content:space-between;align-items:baseline;gap:var(--sp-8);margin:0;display:flex}.radio-card{align-items:flex-start;gap:var(--sp-8);padding:var(--sp-12);border:1px solid var(--field-line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;border-left-width:1px;display:flex}.radio-card.selected{border-color:var(--accent-line);background:var(--surface-emph);border-left-width:3px}.radio-card input{width:16px;height:16px;accent-color:var(--accent-fill);border-radius:0;margin:3px 0 0}.radio-card>span{flex-direction:column;gap:2px;display:flex}.radio-card-note{color:var(--ink-dim)}.toggle-row{justify-content:space-between;align-items:center;gap:var(--sp-12);cursor:pointer;min-height:44px;display:flex}.onboarding{justify-content:flex-start}.consent-list{padding-left:var(--sp-20);gap:var(--sp-4);flex-direction:column;margin:0;display:flex}.screen a:not(.nav a){color:var(--accent-text);border-bottom:1px solid var(--accent-line);padding-bottom:1px;text-decoration:none}.screen a:not(.nav a):hover{background:var(--surface-emph)}.screen a:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}.switch{appearance:none;border:1px solid var(--field-line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;flex:none;width:40px;height:22px;margin:0;padding:0;transition:background-color .16s,border-color .16s;position:relative}.switch:after{content:"";background:var(--ink-dim);width:16px;height:16px;transition:transform .16s,background-color .16s;position:absolute;top:2px;left:2px}.switch:checked{background:var(--accent-fill);border-color:var(--accent-fill)}.switch:checked:after{background:var(--accent-on);transform:translate(18px)}.switch:disabled{cursor:default;opacity:.5}.switch:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}@media (prefers-reduced-motion:reduce){.switch,.switch:after{transition:none}}*,:before,:after{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}h1,h2{margin:0}
