@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kalam-devanagari-700-normal-BeU_-hjz.woff2) format("woff2"),url(/assets/kalam-devanagari-700-normal-B52CSkpd.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kalam-latin-ext-700-normal-CwgfRD_T.woff2) format("woff2"),url(/assets/kalam-latin-ext-700-normal-BA-KJHgr.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kalam-latin-700-normal-D2H-9ISU.woff2) format("woff2"),url(/assets/kalam-latin-700-normal-7TSuSrjP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f4f6f3;--surface: #ffffff;--ink: #1f2a2e;--muted: #5f6d73;--line: #d6ddde;--accent: #2846a8;--on-accent: #ffffff;--error: #a3342b;--f-body: "Atkinson Hyperlegible", system-ui, sans-serif;--f-hand: "Kalam", "Comic Neue", cursive;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #12171a;--surface: #1a2125;--ink: #e4eaec;--muted: #97a5ab;--line: #2e393e;--accent: #93a8ff;--on-accent: #12171a;--error: #ff9b8f;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}body{font-family:var(--f-body);font-size:17px;line-height:1.45}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:480px;margin:0 auto;padding-inline:16px;padding-block:env(safe-area-inset-top,0px) 32px}.muted{color:var(--muted)}.tabs{display:flex;gap:4px;position:sticky;top:env(safe-area-inset-top,0px);background:var(--bg);padding-block:8px;z-index:2}.tabs button{flex:1;background:none;border:0;border-bottom:2px solid var(--line);padding:10px 2px;font-size:.95rem;color:var(--muted);cursor:pointer}.tabs button.on{color:var(--ink);border-bottom:3px solid var(--accent);font-weight:700}.page{background-color:var(--surface);background-image:radial-gradient(var(--line) 1px,transparent 1.2px);background-size:18px 18px;border:1px solid var(--line);border-radius:4px;padding:20px 16px;margin-top:8px}.stack{display:flex;flex-direction:column;gap:20px}h1,h2{font-family:var(--f-hand);margin:0;text-wrap:balance}h1{font-size:2rem;line-height:1.1}h2{font-size:1.2rem}p{margin:0}.identity{display:flex;flex-direction:column;gap:10px}.habits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.habits li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.habit-body{min-width:0}.habit-name{font-weight:700}.box{display:block;width:28px;height:28px;border:2px solid var(--ink);border-radius:3px;position:relative;margin-top:2px}.box.half{border-color:var(--accent);background:linear-gradient(to top right,transparent 45%,var(--accent) 45%,var(--accent) 57%,transparent 57%)}.box.full{border-color:var(--accent);background:var(--accent)}.box.full:after{content:"✕";color:var(--on-accent);position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-weight:700}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.15)}to{transform:scale(1)}}.box.pop{animation:pop .35s ease-out}@media(prefers-reduced-motion:reduce){.box.pop{animation:none}}.marks{display:flex;gap:8px;margin-top:8px}.marks button{flex:1;max-width:150px;min-height:48px;border:1.5px solid var(--accent);border-radius:8px;background:var(--surface);color:var(--accent);font-weight:700;cursor:pointer}.marks button.on{background:var(--accent);color:var(--on-accent)}.vote-line{min-height:1.5em;color:var(--accent)}.end{font-weight:700;font-size:1.1rem;text-align:center}.add{display:flex;flex-direction:column;gap:12px}.add label{display:flex;flex-direction:column;gap:4px;font-weight:700}.add input,.add select{font-weight:400;min-height:48px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.form-actions{display:flex;gap:12px;align-items:center}.primary{min-height:48px;padding:0 20px;border:0;border-radius:8px;background:var(--accent);color:var(--on-accent);font-weight:700;cursor:pointer}.link{align-self:flex-start;background:none;border:0;padding:8px 0;color:var(--accent);text-decoration:underline;cursor:pointer}.error{color:var(--error)}.yesterday{border-top:1px dashed var(--line);padding-top:16px}.habit-meta{font-size:.9rem;color:var(--muted)}.schedule{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}.schedule legend{font-weight:700;padding:0;margin-bottom:4px}.segmented{display:flex;border:1.5px solid var(--accent);border-radius:8px;overflow:hidden}.segmented label{flex:1;min-height:44px;display:grid;place-items:center;background:var(--surface);color:var(--accent);font-weight:700;font-size:.9rem;cursor:pointer;text-align:center;padding:4px}.segmented label+label{border-left:1.5px solid var(--accent)}.segmented label.on{background:var(--accent);color:var(--on-accent)}.segmented input{position:absolute;opacity:0;width:1px;height:1px}.segmented label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.days button{min-height:44px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);font-size:.85rem;cursor:pointer}.days button.on{border-color:var(--accent);background:var(--accent);color:var(--on-accent);font-weight:700}.inline{display:flex;flex-direction:row!important;align-items:center;gap:8px;font-weight:400!important;flex-wrap:wrap}.inline select{min-height:44px}.habit-nudge{font-size:.9rem;color:var(--accent)}.pager{display:flex;align-items:center;justify-content:space-between;gap:8px}.pager button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:1.2rem;cursor:pointer}.pager button:disabled{opacity:.3;cursor:default}.grid-wrap{overflow-x:auto}table.tracker{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.85rem;margin-right:80px}table.tracker th.slant{height:104px;white-space:nowrap;vertical-align:bottom;padding:0;font-weight:700}table.tracker th.slant>div{transform:translate(14px,-6px) rotate(-45deg);width:34px}table.tracker th.slant span{display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis}table.tracker th.day{text-align:right;padding-right:10px;font-weight:400;white-space:nowrap}table.tracker th.day span{color:var(--muted);display:inline-block;width:1ch}table.tracker td{padding:2px 6px;text-align:center}table.tracker tr.week-start th,table.tracker tr.week-start td{border-top:1px solid var(--line)}table.tracker tr.today th.day{color:var(--accent);font-weight:700}table.tracker tr.week-row th,table.tracker tr.week-row td{font-size:.75rem;color:var(--muted);padding-block:0 4px}table.tracker tr.week-row td.met{color:var(--accent);font-weight:700}.cell{display:inline-block;width:22px;height:22px;border:1.5px solid var(--line);border-radius:3px;background:transparent;padding:0;vertical-align:middle}.cell.full{background:var(--accent);border-color:var(--accent)}.cell.half{border-color:var(--accent);background:linear-gradient(to top right,transparent 44%,var(--accent) 44%,var(--accent) 58%,transparent 58%)}.cell.missed,.cell.open{border-color:var(--muted)}.cell.rest,.cell.optional{border-style:dotted;background:var(--line);opacity:.6}.cell.future,.cell.before{opacity:.3}button.tap{display:inline-grid;place-items:center;width:44px;height:44px;margin:-11px;padding:0;border:0;background:transparent;cursor:pointer}.cell.editable{outline:2px dashed var(--accent);outline-offset:2px}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;color:var(--muted);align-items:center}.legend span{display:inline-flex;gap:6px;align-items:center}.legend .cell{width:14px;height:14px}
