@font-face{font-family:Hanken Grotesk;src:url(/fonts/HankenGrotesk-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--paper: #f4f6f9;--desk: #e8ecf1;--ink: #1f3a5f;--ink-soft: #4a5e7a;--rule: #c9d1db;--rule-strong: #a3b0c1;--alert: #d8452b;--alert-text: #b3321c;--on-ink: #f4f6f9;--sans: "Hanken Grotesk", ui-sans-serif, -apple-system, "SF Pro Text", system-ui, sans-serif;--ease-out: cubic-bezier(.23, 1, .32, 1);--line: 52px;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--paper: #11161d;--desk: #0b0e13;--ink: #dfe7f2;--ink-soft: #94a6bf;--rule: #26303f;--rule-strong: #3a4757;--alert: #ff6a4d;--alert-text: #ff8a73;--on-ink: #11161d}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.4 var(--sans);font-feature-settings:"tnum" 1,"ss01" 0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--sans);margin:0;font-weight:600;letter-spacing:-.015em}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}input,textarea,select{font:inherit;color:inherit}a{color:inherit}::selection{background:var(--ink);color:var(--on-ink)}input,textarea{caret-color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:3px}*{scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent}::placeholder{color:var(--ink-soft);opacity:1}::-webkit-calendar-picker-indicator{filter:none;opacity:.6}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}:root{--tab-h: calc(58px + env(safe-area-inset-bottom)) ;--cap-h: 118px}.app{min-height:100dvh}.spread{max-width:640px;margin:0 auto;padding-bottom:calc(var(--tab-h) + var(--cap-h) + 12px)}.pg{padding:22px 20px 6px}.pagetitle{font-size:1.6rem;margin:6px 0 14px}.ruled{border-top:1px solid var(--rule-strong);background:linear-gradient(var(--rule),var(--rule)) 59px 0 / 1px 100% no-repeat}.ruled:after{content:"";display:block;height:calc(var(--line) * 3);background:repeating-linear-gradient(transparent 0 calc(var(--line) - 1px),var(--rule) calc(var(--line) - 1px) var(--line))}.rule-heading{display:flex;align-items:baseline;gap:8px;font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--ink-soft);margin:30px 0 8px}.rule-heading .count{font-weight:500;font-variant-numeric:tabular-nums;opacity:.75}.rule-heading.late{color:var(--alert-text)}.blank{color:var(--ink-soft);font-size:14px;margin:0;padding:16px 0 16px 70px;border-bottom:1px solid var(--rule)}.status{color:var(--ink-soft);font-size:13px;margin:10px 0}.status.err{color:var(--alert-text)}.more{padding:12px 0 0 70px;margin:0;font-size:13px}.more a{color:var(--ink-soft);text-underline-offset:3px}.line{display:grid;grid-template-columns:60px 28px minmax(0,1fr) auto;column-gap:10px;align-items:center;min-height:var(--line);border-bottom:1px solid var(--rule)}.margin{font-size:12px;color:var(--ink-soft);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.margin.late{color:var(--alert-text);font-weight:600}.box{display:grid;place-items:center}.bullet{width:5px;height:5px;border-radius:50%;background:var(--ink-soft)}.writing{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:11px 0;min-width:0;width:100%}button.writing:hover .w-text{text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:4px}.w-text{font-size:16px;line-height:1.3;overflow-wrap:anywhere;text-decoration:line-through;text-decoration-color:transparent;text-decoration-thickness:1.5px;transition:color .2s var(--ease-out),text-decoration-color .2s var(--ease-out)}.w-text svg{display:inline-block;vertical-align:-2px;margin-left:7px;color:var(--ink-soft);text-decoration:none}.w-sub{font-size:12.5px;color:var(--ink-soft);margin-top:1px}.w-sub.late{color:var(--alert-text)}.line.done .w-text{color:var(--ink-soft);text-decoration-color:var(--ink-soft)}.aside{display:flex;align-items:center;gap:6px}.editor{grid-column:2 / -1;padding:2px 0 18px;min-width:0}.line.open{background:color-mix(in srgb,var(--ink) 4%,transparent)}.line.fresh .writing,.line.fresh .w-text{animation:write .28s var(--ease-out)}@keyframes write{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.line.write{grid-template-columns:60px 28px minmax(0,1fr)}.line.write .box{color:var(--ink-soft)}.writing-input{grid-column:3 / -1;height:var(--line);border:0;background:transparent;font-size:16px;width:100%;padding:0}.writing-input:focus{outline:none}.line.write:focus-within{border-bottom:2px solid var(--ink)}.tick{position:relative;width:24px;height:24px;border:1.5px solid var(--ink);border-radius:4px;display:grid;place-items:center;transition:transform 90ms var(--ease-out)}.tick:after{content:"";position:absolute;inset:-12px}.tick:active{transform:scale(.9)}.tick svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.tick svg path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .22s var(--ease-out)}.tick.on svg path{stroke-dashoffset:0}.tick.late{border-color:var(--alert-text);outline:1.5px solid var(--alert-text);outline-offset:2.5px}.tick.late svg{stroke:var(--alert-text)}.dayhead{display:grid;gap:16px;margin-bottom:4px}.date{display:flex;align-items:flex-end;gap:16px}.numeral{font-size:5.25rem;font-weight:200;line-height:.82;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.dateinfo{padding-bottom:4px}.dateinfo h1{font-size:1.55rem;line-height:1.1}.dateinfo span{display:block;color:var(--ink-soft);font-size:14px;margin-top:3px}.weekstrip{display:flex;justify-content:space-between;max-width:330px}.wd{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-soft);width:34px;padding:4px 0;border-radius:6px}.wd:disabled{cursor:default}.wd:not(:disabled):hover{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}.wd:after{content:"";position:absolute;inset:-6px -2px}.wd i{font-style:normal}.wd b{width:7px;height:7px;border-radius:50%;border:1px solid var(--rule-strong)}.wd.mark b{background:var(--ink);border-color:var(--ink)}.wd.cur i{color:var(--ink);font-weight:700}.wd.cur b{outline:1.5px solid var(--ink);outline-offset:2.5px}.flip{display:flex;gap:6px;align-items:center}.flip button{height:40px;min-width:40px;border:1px solid var(--rule-strong);border-radius:8px;display:grid;place-items:center;padding:0 12px;font-size:14px}.flip button:disabled{opacity:.4;cursor:default}.habitgrid{border-top:1px solid var(--rule-strong)}.hg-head,.hg-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(7,34px);align-items:center;border-bottom:1px solid var(--rule)}.hg-head{min-height:32px;font-size:11.5px;color:var(--ink-soft)}.hg-row{min-height:50px}.hg-d{text-align:center}.hg-d.cur{color:var(--ink);font-weight:700}.hg-name{font-size:15px;padding-right:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hg-cell{display:grid;place-items:center;height:100%}.hg-cell.cur{background:color-mix(in srgb,var(--ink) 6%,transparent)}.hg-cell .tick{width:22px;height:22px}.hg-cell .tick svg{width:18px;height:18px}.hg-cell .tick:after{inset:-12px -6px}.qty{font-size:12px;font-weight:600;border:1.5px solid var(--ink);border-radius:4px;padding:3px 4px;min-width:30px;font-variant-numeric:tabular-nums}.qdot{width:8px;height:8px;border-radius:50%;border:1px solid var(--rule-strong)}.qdot.on{background:var(--ink);border-color:var(--ink)}.capture{position:fixed;left:0;right:0;bottom:var(--tab-h);z-index:15;background:var(--paper);border-top:1px solid var(--rule-strong);padding:10px 16px}.cap-kinds{display:flex;gap:4px;align-items:center;margin-bottom:6px}.cap-kinds>button{display:inline-flex;gap:6px;align-items:center;justify-content:center;height:36px;min-width:40px;padding:0 10px;border-radius:999px;font-size:13.5px;color:var(--ink-soft);white-space:nowrap}.cap-kinds>button .klabel{display:none}.cap-kinds>button.on{background:var(--ink);color:var(--on-ink);font-weight:600;padding:0 13px}.cap-kinds>button.on .klabel{display:inline}.cap-opts{margin-left:auto;display:flex;gap:6px;min-width:0}.opt{height:36px;padding:0 11px;border:1px solid var(--rule-strong);border-radius:999px;font-size:13.5px;white-space:nowrap}.opt.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.when{height:36px;width:232px;min-width:0;border:1px solid var(--rule-strong);border-radius:8px;background:transparent;padding:0 8px;font-size:13.5px}.cap-row{display:flex;gap:10px;align-items:center}.cap-row input{flex:1;min-width:0;height:46px;border:0;border-bottom:1.5px solid var(--ink);background:transparent;font-size:16px;padding:0 2px}.cap-row input:focus{outline:none;border-bottom-width:3px}.cap-row input:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}.send{width:46px;height:46px;border-radius:8px;background:var(--ink);color:var(--on-ink);display:grid;place-items:center;flex:none;transition:opacity .12s}.send:disabled{opacity:.3;cursor:default}.tabbar{position:fixed;left:0;right:0;bottom:0;height:var(--tab-h);z-index:20;display:grid;grid-template-columns:repeat(4,1fr);background:var(--paper);border-top:1px solid var(--rule-strong);padding-bottom:env(safe-area-inset-bottom)}.ttab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11.5px;color:var(--ink-soft);text-decoration:none}.ttab.on{color:var(--ink);font-weight:600}.ttab.on:before{content:"";position:absolute;top:-1px;left:24%;right:24%;height:2px;background:var(--ink)}.edgetabs{display:none}.utabs{display:flex;gap:24px;border-bottom:1px solid var(--rule-strong);margin-bottom:4px}.utabs button{padding:10px 0;font-size:15px;color:var(--ink-soft)}.utabs button.on{color:var(--ink);font-weight:600;box-shadow:0 2px 0 var(--ink)}.ed{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding-top:4px;min-width:0}.ed input:not([type=checkbox]):not([type=datetime-local]),.ed textarea{width:100%;border:0;border-bottom:1px solid var(--rule-strong);background:transparent;padding:9px 0;outline:none;font-size:16px;resize:vertical}.ed input:focus,.ed textarea:focus{border-bottom-color:var(--ink)}.ed-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ed-row label{display:grid;gap:4px;font-size:12px;color:var(--ink-soft)}.ed-row input[type=datetime-local],.ed-row input[type=number]{border:1px solid var(--rule-strong);border-radius:8px;background:transparent;padding:8px 10px;font-size:15px}.ed-actions{display:flex;justify-content:space-between;align-items:center}.chip{height:36px;padding:0 13px;border:1px solid var(--rule-strong);border-radius:999px;font-size:13.5px}.chip.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.solid{background:var(--ink);color:var(--on-ink);border-radius:8px;height:42px;padding:0 22px;font-weight:600}.solid:disabled{opacity:.35;cursor:default}.textbtn{font-size:13.5px;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;padding:12px 0}.textbtn.danger{color:var(--alert-text)}.x{width:40px;height:40px;font-size:22px;color:var(--ink-soft);border-radius:8px}.x:hover{color:var(--ink)}.snz{display:flex;gap:6px}.snz button{height:30px;padding:0 10px;font-size:12.5px;border:1px solid var(--rule-strong);border-radius:999px;color:var(--ink-soft)}.stepper{display:flex;gap:6px}.stepper button{width:40px;height:40px;border:1px solid var(--rule-strong);border-radius:8px;font-size:18px}.review{width:100%;border:0;border-top:1px solid var(--rule-strong);outline:none;resize:vertical;font-size:16px;line-height:34px;padding:0 2px;min-height:170px;background:repeating-linear-gradient(transparent 0 33px,var(--rule) 33px 34px)}.login{min-height:100dvh;display:grid;place-items:center;padding:20px;background:var(--desk)}.login-card{width:min(420px,100%);background:var(--paper);border:1px solid var(--rule);padding:38px 30px 28px}.login-mark{width:40px;height:40px;border:2px solid var(--ink);border-radius:7px;display:grid;place-items:center;margin-bottom:22px}.login-mark svg{width:30px;height:30px;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.login h1{font-size:1.9rem}.login p{color:var(--ink-soft);margin:10px 0 22px}.login .field{width:100%;border:0;border-bottom:1.5px solid var(--rule-strong);background:transparent;padding:12px 0;margin-bottom:14px;outline:none;font-size:16px;color:var(--ink)}.login .field:focus{border-bottom-color:var(--ink)}.login .solid{width:100%;display:inline-flex;justify-content:center;align-items:center;gap:8px;height:50px;font-size:16px}.login .fine{font-size:12.5px;margin:20px 0 0;text-align:center}.login .err{color:var(--alert-text);text-align:center;font-size:13.5px;margin:14px 0 0}.codes{background:color-mix(in srgb,var(--ink) 6%,transparent);padding:14px;font:14px/1.8 ui-monospace,SF Mono,Menlo,monospace;white-space:pre;user-select:all;margin:0 0 14px;border-radius:4px}.check{display:flex;gap:10px;align-items:center;margin-bottom:14px;font-size:15px}.linkbtn{color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;font-size:13px}.dev-note{margin-top:16px;padding-top:14px;border-top:1px dashed var(--rule-strong);text-align:center}.dev-note button{color:var(--alert-text);font-size:12.5px;text-decoration:underline}@media (min-width: 960px){:root{--line: 48px}body{background:var(--desk)}.app{display:flex;justify-content:center;align-items:flex-start;padding:40px 24px 40px 40px;gap:0}.spread{flex:1;max-width:1180px;margin:0;padding:0;background:var(--paper);border:1px solid var(--rule-strong);display:grid;grid-template-columns:1fr 1fr;align-content:start;min-height:calc(100dvh - 80px);position:relative}.spread:before,.spread:after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--rule-strong);left:calc(50% - 2px)}.spread:after{left:calc(50% + 2px)}.pg{padding:40px 48px 24px;min-width:0}.pg:nth-of-type(1){padding-right:44px}.pg:nth-of-type(2){padding-left:44px}.spread{grid-template-rows:1fr auto}.pg{grid-row:1}.capture{position:sticky;bottom:0;grid-column:1;grid-row:2;z-index:5;align-self:end;padding:14px 44px 16px 48px}.cap-kinds>button .klabel{display:inline}.tabbar{display:none}.edgetabs{display:flex;flex-direction:column;gap:6px;position:sticky;top:96px;margin-left:-1px}.etab{writing-mode:vertical-rl;display:grid;place-items:center;padding:20px 14px;min-height:104px;font-size:14px;color:var(--ink-soft);text-decoration:none;background:var(--desk);border:1px solid var(--rule-strong);border-left:0;border-radius:0 9px 9px 0;transition:transform .16s var(--ease-out),background .16s var(--ease-out),color .16s}.etab:hover{color:var(--ink)}.etab.on{background:var(--paper);color:var(--ink);font-weight:600;margin-left:-1px;transform:translate(6px)}.etab.lock{margin-top:28px;min-height:76px}.numeral{font-size:6rem}.dayhead{grid-template-columns:auto 1fr;align-items:end;gap:28px}.weekstrip{justify-self:end;width:100%}.flip{grid-column:1 / -1}}.turn{animation:turn .22s var(--ease-out)}@keyframes turn{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@media (hover: hover){.tick:hover{background:color-mix(in srgb,var(--ink) 9%,transparent)}.opt:hover,.chip:hover,.snz button:hover,.flip button:not(:disabled):hover,.stepper button:hover,.cap-kinds>button:not(.on):hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.solid:not(:disabled):hover,.send:not(:disabled):hover{background:color-mix(in srgb,var(--ink) 86%,var(--paper))}.utabs button:hover,.ttab:hover,.textbtn:hover{color:var(--ink)}}.ttab.armed,.etab.armed{color:var(--alert-text);font-weight:600}@media (max-width: 959px){.cap-kinds{flex-wrap:wrap;row-gap:4px}.cap-kinds>button,.opt{height:44px}.when{height:44px;min-width:232px;width:100%;flex:1}.cap-opts{flex:1;justify-content:flex-end}.chip{height:44px}.snz button{height:36px;position:relative}.snz button:after{content:"";position:absolute;inset:-4px -3px}}.when::-webkit-calendar-picker-indicator{margin-left:6px}.check .hint{color:var(--ink-soft);font-size:13px}.check{flex-wrap:wrap}
