@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/barlow-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/barlow-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/barlow-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/barlow-condensed-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/barlow-condensed-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/barlow-condensed-latin-700-normal.woff2) format("woff2")}:root{--bg: #f5f5f3;--surface: #ffffff;--surface-2: #ececea;--text: #17181a;--muted: #676b70;--line: #d9dad7;--accent: #d7263d;--accent-ink: #ffffff;--up: #1f8a46;--down: #c2302a;--plate-red: #d7263d;--plate-blue: #1f63c9;--plate-yellow: #f0bd1e;--plate-green: #2a9a4e;--plate-grey: #b9bcc0;--radius: 14px;--tabbar-h: 58px;--safe-b: env(safe-area-inset-bottom, 0px);--head: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--body: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111214;--surface: #1b1d20;--surface-2: #26292d;--text: #f1f1ef;--muted: #9da1a6;--line: #33363b;--accent: #ef3b52;--up: #4cc477;--down: #ff6b61;--plate-grey: #e6e7e8}}:root[data-theme=dark]{--bg: #111214;--surface: #1b1d20;--surface-2: #26292d;--text: #f1f1ef;--muted: #9da1a6;--line: #33363b;--accent: #ef3b52;--up: #4cc477;--down: #ff6b61;--plate-grey: #e6e7e8;color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.4 var(--body);font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent}h1,h2,h3{font-family:var(--head);font-weight:700;line-height:1.1;margin:0 0 8px;letter-spacing:.01em}h1{font-size:30px}h2{font-size:21px}p{margin:0 0 10px}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:13px}.nowrap{white-space:nowrap}.error{color:var(--down);font-size:14px;margin:4px 0}.app{max-width:640px;margin:0 auto;min-height:100dvh}.boot{min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(6px + env(safe-area-inset-top,0px)) 12px 6px 16px;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.wordmark span{color:var(--accent)}.wordmark{display:inline-flex;align-items:center;min-height:44px;font:700 24px/1 var(--head);color:var(--text);text-decoration:none}.tabbar{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);max-width:640px;margin:0 auto;padding-bottom:var(--safe-b);background:var(--surface);border-top:1px solid var(--line)}.tab{display:flex;align-items:center;justify-content:center;height:var(--tabbar-h);font:600 17px/1 var(--head);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-decoration:none}.tab.on{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.page{padding:8px 16px calc(var(--tabbar-h) + var(--safe-b) + 96px)}.onboarding .page{padding-bottom:calc(var(--safe-b) + 96px)}.btn,.icon-btn,.chip{font:inherit;cursor:pointer;border:0;-webkit-user-select:none;user-select:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:0 18px;border-radius:12px;background:var(--surface-2);color:var(--text);font:600 18px/1 var(--head);letter-spacing:.03em;text-decoration:none;text-align:center}.btn.small{min-height:44px;padding:0 14px;font-size:16px}.btn.block{display:flex;width:100%}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.ghost{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line)}.btn.danger,.btn.armed{background:var(--down);color:#fff;box-shadow:none}.btn:disabled,.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:12px;background:transparent;color:var(--muted);font-size:24px;line-height:1;text-decoration:none}.icon-btn.small{min-width:44px;font-size:20px}.icon-btn.armed{background:var(--down);color:#fff;font:600 14px/1 var(--head);padding:0 10px}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.actions.end{justify-content:flex-end}.stack{display:grid;gap:10px}.row-between{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.field{display:grid;gap:4px;margin-bottom:10px}.field>span{font:600 13px/1.2 var(--head);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}input[type=text],input[type=url],input[type=date],input[type=number],select,textarea{width:100%;min-height:46px;padding:10px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:17px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}input.invalid{border-color:var(--down)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card{background:var(--surface);border-radius:var(--radius);padding:14px;margin:12px 0;border:1px solid var(--line)}.empty{text-align:center;padding:24px 8px}.section-title{margin-top:24px}.day-badge{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border-radius:999px;font:700 16px/1 var(--head);color:#fff;box-shadow:inset 0 0 0 3px #00000026;flex:none}.day-badge.small{min-width:24px;height:24px;font-size:13px}.plate-red{background:var(--plate-red)}.plate-blue{background:var(--plate-blue)}.plate-yellow{background:var(--plate-yellow);color:#1d1d1d}.plate-green{background:var(--plate-green)}.plate-grey{background:var(--plate-grey);color:#1d1d1d}.welcome{min-height:100dvh;padding:calc(28px + env(safe-area-inset-top,0px)) 16px calc(24px + var(--safe-b));display:flex;flex-direction:column}.site-title{font-size:52px;letter-spacing:-.01em;margin:12px 0 10px}.site-title span{color:var(--accent)}.lede{font-size:19px;line-height:1.35;max-width:28ch;margin-bottom:8px}.lede-privacy{display:inline-flex;align-items:center;min-height:44px;font:600 18px/1 var(--head);letter-spacing:.02em;color:var(--muted);text-decoration:none}.welcome-cards{display:grid;gap:12px;margin:24px 0 18px}@media(min-width:560px){.welcome-cards{grid-template-columns:1fr 1fr}}.welcome-card{display:grid;gap:6px;min-height:96px;padding:18px;text-align:left;border-radius:18px;border:2px solid var(--line);background:transparent;color:var(--text);font:inherit;cursor:pointer}.welcome-card strong{font:700 24px/1.1 var(--head)}.welcome-card span{color:var(--muted)}.welcome-card.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.welcome-card.primary span{color:color-mix(in srgb,var(--accent-ink) 85%,transparent)}.welcome.sub h1{margin:12px 0 16px}.back{align-self:flex-start;min-height:44px;padding:0 4px 0 0;border:0;background:none;color:var(--accent);font:600 18px/1 var(--head);cursor:pointer}.or{text-align:center;color:var(--muted);margin:4px 0}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.plan-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.plan-list-item{display:grid;gap:4px;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);color:var(--text);text-decoration:none}.plan-list-item strong{font:700 22px/1.1 var(--head)}.plan-list-item span{color:var(--muted)}.plan-preview header{margin:8px 0 4px}.byline{font:600 17px/1 var(--head);color:var(--accent)}.notes{white-space:pre-line}.day-title{display:flex;align-items:center;gap:10px}.slot-list{list-style:none;padding:0;margin:0}.slot-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.slot-target{text-align:right;white-space:nowrap}.keep-safe{margin:8px 0 14px;padding:16px;border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1.5px solid color-mix(in srgb,var(--accent) 45%,transparent)}.keep-safe h2{font-size:24px}.log-head{display:flex;align-items:center;gap:10px;margin:2px 0 10px}.date-field{flex:1}.editing-banner{padding:8px 12px;border-radius:10px;background:var(--surface-2);font-weight:600}.day-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin:4px 0 8px}.day-picker.wrap{grid-template-columns:repeat(4,1fr)}.day-btn{position:relative;display:grid;justify-items:center;gap:4px;min-height:72px;padding:10px 4px 8px;border-radius:12px;border:2px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.day-btn.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.day-name{font:600 15px/1.1 var(--head);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next-badge{position:absolute;top:-8px;right:-4px;padding:2px 6px;border-radius:999px;background:var(--text);color:var(--bg);font:700 11px/1.2 var(--head);text-transform:uppercase;letter-spacing:.06em}.inline-confirm{padding:12px;border-radius:12px;background:var(--surface-2);margin:8px 0}.ex-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.ex-head h2{margin:8px 0 2px}.ex-card .target{font-weight:600;margin-bottom:6px}.last{font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chip{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:4px 14px;border-radius:999px;background:var(--surface-2);color:var(--text);font-size:15px}.chip.on{background:color-mix(in srgb,var(--accent) 16%,var(--surface));box-shadow:inset 0 0 0 1.5px var(--accent)}.chip.add{background:transparent;box-shadow:inset 0 0 0 1.5px dashed var(--line);border:1.5px dashed var(--line)}.chip-x{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-4px -14px -4px -8px;border:0;background:none;color:var(--muted);font-size:20px;cursor:pointer}.set-rows{display:grid;gap:8px;margin-bottom:8px}.set-row{display:grid;grid-template-columns:26px 1fr 14px 1fr 40px;align-items:center;gap:6px}.set-label{font:700 17px/1 var(--head);color:var(--muted);text-align:center}.num{position:relative}.num input{text-align:center;font-size:20px;font-weight:600;padding:8px 28px 8px 8px}.num input::placeholder{color:color-mix(in srgb,var(--muted) 70%,transparent);font-weight:400}.num span{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--muted);pointer-events:none}.times{text-align:center;color:var(--muted)}.row-note{grid-column:2 / -1;font-size:13px;color:var(--muted);margin-top:-4px}.sticky-bar{position:sticky;z-index:10;bottom:calc(var(--tabbar-h) + var(--safe-b) + 8px);margin-top:16px}.onboarding .sticky-bar{bottom:calc(var(--safe-b) + 8px)}.save-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 24px #0000002e}.save-bar .btn.primary{flex:1;max-width:260px}.picker-row{display:flex;gap:8px}.picker-list{list-style:none;margin:6px 0 0;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.picker-list button{width:100%;min-height:44px;padding:10px 12px;text-align:left;border:0;border-top:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.picker-list li:first-child button{border-top:0}.picker-list .create{color:var(--accent);font-weight:600}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.week-nav .icon-btn{font-size:34px;color:var(--text)}.week-title{text-align:center}.week-title h1{margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.stat{display:grid;gap:2px;padding:10px;border-radius:12px;background:var(--surface);border:1px solid var(--line);text-align:center}.stat strong{font:700 24px/1.1 var(--head)}.stat span{font-size:12px;color:var(--muted)}.session-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.session-head h2{margin:0}table{width:100%;border-collapse:collapse;font-size:15px}th{text-align:left;font:600 12px/1 var(--head);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:6px 4px}td{padding:8px 4px;border-top:1px solid var(--line);vertical-align:top}.num-cell{text-align:right;white-space:nowrap;font-weight:600}th:not(:first-child){text-align:right}.ex-name{display:block;font-weight:600}.all-sets{display:block;font-size:13px;color:var(--muted)}.delta.up{color:var(--up)}.delta.down{color:var(--down)}.delta.none,.delta.same{color:var(--muted)}.text-editor{margin-top:8px}.history-table tr.imported td{color:var(--muted)}.chart{margin:8px 0 16px;padding:10px 6px 6px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--line)}.chart svg{display:block;width:100%;height:auto}.chart figcaption{text-align:center}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis{fill:var(--muted);font:500 11px var(--body)}.chart .divider{stroke:var(--muted);stroke-dasharray:4 4}.chart .line{fill:none;stroke:var(--muted);stroke-width:1.5;opacity:.6}.chart .pt.muted{fill:var(--surface);stroke:var(--muted);stroke-width:1.5}.chart .pt.app{fill:var(--accent)}.day-card{padding:0}.day-toggle{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.day-summary{flex:1;min-width:0;font:700 21px/1.1 var(--head);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{width:10px;height:10px;margin:0 4px 4px 2px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}.day-card.open .chevron{transform:rotate(-135deg);margin-bottom:-4px}.day-body{padding:0 14px 14px}.day-actions{margin:-2px 0 6px}.spacer{flex:1}.slot-rows{list-style:none;margin:0 0 10px;padding:0}.slot{border-top:1px solid var(--line)}.slot-summary{display:grid;gap:2px;width:100%;min-height:56px;padding:9px 2px;border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.slot-name{font-weight:600}.slot-meta{font-size:14px;color:var(--muted)}.slot.editing{margin:0 -14px;padding:0 14px 12px;background:var(--surface-2);border-top-color:transparent}.slot-edit{display:grid;gap:10px}.slot-options{display:flex;flex-wrap:wrap;gap:6px}.slot-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.slot-fields .field{margin:0}.slot-foot{display:flex;align-items:center;gap:4px}.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;background:var(--surface)}.stepper button{min-width:44px;min-height:44px;border:0;background:none;color:var(--text);font-size:22px;cursor:pointer}.stepper button:disabled{opacity:.3;cursor:default}.stepper output{min-width:64px;text-align:center;font-weight:600}.toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600}.toggle input{width:22px;height:22px;accent-color:var(--accent)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#00000073}.sheet{width:100%;max-width:640px;max-height:90dvh;overflow:auto;padding:16px 16px calc(20px + var(--safe-b));border-radius:20px 20px 0 0;background:var(--surface)}.sheet-head{display:flex;justify-content:space-between;align-items:center}.steps{padding-left:22px;line-height:1.6}.steps li{margin-bottom:6px}.summary{font:600 19px/1.3 var(--head)}.toast{position:fixed;z-index:60;left:50%;top:calc(env(safe-area-inset-top,0px) + 58px);transform:translate(-50%,-12px);padding:10px 18px;border-radius:999px;background:var(--text);color:var(--bg);font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px)}.toast.show{opacity:1;transform:translate(-50%)}.site-footer{margin:28px 0 8px;padding-top:14px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.promise{color:var(--text)}.privacy ul{padding-left:20px;line-height:1.5}.privacy h2{margin-top:22px}code{font-size:.95em;padding:1px 4px;border-radius:4px;background:var(--surface-2)}.shared-badge{display:inline-block;margin:4px 0 10px;padding:4px 10px;border-radius:999px;border:1.5px solid var(--line);color:var(--muted);font:600 14px/1.2 var(--head);letter-spacing:.03em}.merge-notes{margin:0 0 12px;padding-left:20px;line-height:1.45}.merge-notes .warn{color:var(--down);font-weight:600}.crash{padding-top:calc(32px + env(safe-area-inset-top,0px))}.byline.shared{color:var(--muted)}.date-field input{min-height:48px;font:600 19px/1 var(--head);letter-spacing:.02em}.chip.swap{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--muted)}.row-x{opacity:.45}.row-x:hover,.row-x:focus-visible{opacity:1}.stat small{font-size:11px;color:var(--muted);opacity:.8}textarea.set-line{resize:none;overflow:hidden;field-sizing:content;line-height:1.4;min-height:46px}.donate{font-size:14px;color:var(--muted);line-height:1.45}.donate a{color:var(--accent)}.num input.implied::placeholder{color:var(--text);font-weight:600;opacity:.8}@media(min-width:700px){.welcome{justify-content:center}}.donate-prompt{position:fixed;z-index:40;left:12px;right:12px;bottom:calc(var(--tabbar-h) + var(--safe-b) + 12px);max-width:616px;margin:0 auto;padding:14px 14px 10px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 30px #00000040;animation:rise .2s ease-out}.donate-prompt .donate{margin-bottom:6px}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.welcome.returning{min-height:auto;padding-top:8px;padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + 32px)}.welcome.returning .site-title{font-size:40px;margin-top:4px}.continue-card{display:flex;align-items:center;gap:14px;min-height:84px;margin:20px 0 4px;padding:16px 18px;border-radius:18px;background:var(--accent);color:var(--accent-ink);text-decoration:none}.continue-card .day-badge{min-width:40px;height:40px;font-size:19px;box-shadow:inset 0 0 0 3px #00000026,0 0 0 2px #ffffffd9}.continue-text{flex:1;display:grid;gap:4px}.continue-text strong{font:700 24px/1.1 var(--head)}.continue-text span{color:color-mix(in srgb,var(--accent-ink) 85%,transparent)}.continue-arrow{font-size:26px;transition:transform .15s}.continue-card:hover .continue-arrow,.continue-card:focus-visible .continue-arrow{transform:translate(4px)}.welcome-card.confirm{cursor:default;border-color:var(--accent)}.welcome-card.confirm .actions{margin-top:6px}.topnav{display:none}@media(min-width:900px){:root{--tabbar-h: 0px}.app{max-width:760px}.tabbar{display:none}.topbar{gap:8px;padding-top:calc(10px + env(safe-area-inset-top,0px));padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:12px}.topnav{display:flex;gap:4px;margin-left:auto}.topnav-link{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:10px;font:600 17px/1 var(--head);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-decoration:none}.topnav-link:hover{color:var(--text);background:var(--surface-2)}.topnav-link.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.page,.welcome.returning{padding-bottom:48px}.sticky-bar{bottom:16px}.donate-prompt{bottom:20px}}.app:not(.onboarding) .welcome.sub{padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + 40px)}.welcome-card{align-content:start}.storage-notice{display:flex;align-items:center;gap:4px;padding:calc(env(safe-area-inset-top,0px) + 2px) 4px 2px 16px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:13px;line-height:1.3;color:var(--muted)}.storage-notice p{flex:1;margin:0;padding:6px 0}.storage-allow{min-height:44px;padding:0 10px;border:0;background:none;color:var(--accent);font:700 15px/1 var(--head);letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.storage-x{min-width:44px;min-height:44px;border:0;background:none;color:var(--muted);font-size:20px;cursor:pointer}.app:has(.storage-notice) .toast{top:calc(env(safe-area-inset-top,0px) + 122px)}.choice{display:grid;gap:6px;margin-bottom:14px}.choice-label{font:600 13px/1.2 var(--head);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.segmented{display:flex;padding:3px;border-radius:12px;background:var(--surface-2)}.segmented button{flex:1;min-height:44px;border:0;border-radius:10px;background:none;color:var(--muted);font:600 16px/1.1 var(--head);cursor:pointer}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0003}.default-mark{font-weight:500;font-size:13px;color:var(--muted)}
