:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#111);--ink:var(--lightningcss-light,#111)var(--lightningcss-dark,#eee);--muted:var(--lightningcss-light,#666)var(--lightningcss-dark,#999);--faint:var(--lightningcss-light,#aaa)var(--lightningcss-dark,#555);--rule:var(--lightningcss-light,#000)var(--lightningcss-dark,#eee);--hair:var(--lightningcss-light,#ddd)var(--lightningcss-dark,#333);--panel:var(--lightningcss-light,#f3f3f3)var(--lightningcss-dark,#1c1c1c);--control:var(--lightningcss-light,#fff)var(--lightningcss-dark,#111);--danger:var(--lightningcss-light,#c62828)var(--lightningcss-dark,#ef5350);--warn:#ffd800;--on-warn:#111;--late:var(--lightningcss-light,#c62828)var(--lightningcss-dark,#ef5350);--scrim:var(--lightningcss-light,#0006)var(--lightningcss-dark,#000000b3);--gap:8px;--gutter:12px;--border:2px;--hdr:52px;font-variant-numeric:tabular-nums;font:400 15px/1.3 -apple-system,system-ui,Helvetica Neue,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;border-radius:0}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;margin:0;overflow:hidden}#app{flex-direction:column;height:100dvh;display:flex}button{font:inherit;color:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--warn);outline-offset:-3px}main{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0;padding-top:env(safe-area-inset-top);flex:1;overflow-y:auto}.view{flex-direction:column;display:flex}.page{padding:var(--gutter);gap:var(--gap);flex-direction:column;display:flex}.note{color:var(--muted);margin:0;padding:8px 0}.note.pad{padding:12px var(--gutter)}.note.small{padding:0;font-size:13px}.note.lock{color:var(--ink);background:var(--panel);margin:0 var(--gutter);padding:8px 10px;font-weight:600}.page .note.lock{margin:0}.label{letter-spacing:.08em;color:var(--muted);margin-top:16px;font-size:11px;font-weight:700}.mono{color:var(--muted);white-space:pre-wrap;word-break:break-word;font:12px ui-monospace,Menlo,monospace}.err{color:var(--danger);margin:0;font-weight:600}.row{gap:var(--gap);align-items:center;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.hdr{z-index:2;background:var(--bg);height:var(--hdr);padding:0 var(--gutter);border-bottom:var(--border) solid var(--rule);align-items:center;gap:8px;display:flex;position:sticky;top:0}.hdr .title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:20px;font-weight:700;overflow:hidden}.pickwrap{display:inline-block;position:relative}.pickwrap input{opacity:0;appearance:none;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.ptitle{text-overflow:ellipsis;align-items:center;gap:8px;max-width:100%;font-weight:700;display:inline-flex;overflow:hidden}.ptitle i,.prow i,.proj i{background:var(--c);flex:none;width:14px;height:14px;display:inline-block}.chipbtn{letter-spacing:.06em;border:var(--border) solid var(--rule);flex:none;height:32px;padding:0 10px;font-size:12px;font-weight:700}.chipbtn.on{background:var(--ink);color:var(--bg)}select.sort{background:var(--control);border:var(--border) solid var(--rule);appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);background-position:calc(100% - 13px),calc(100% - 8px);background-repeat:no-repeat;background-size:5px 5px;height:32px;padding:0 24px 0 8px;font-size:12px;font-weight:700}.group{padding:14px var(--gutter) 6px;border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.group.late span{color:var(--late)}.link{letter-spacing:.06em;background:var(--panel);padding:6px 8px;font-size:11px;font-weight:700}.link:active{background:var(--warn);color:var(--on-warn)}.task{border-bottom:1px solid var(--hair);align-items:stretch;display:flex}.task.sub{padding-left:28px}.task .box{flex:none;place-items:center;width:52px;display:grid}.task .box:before,.box.big:before{content:"";border:var(--w,2px) solid var(--p,var(--ink));grid-area:1/1;width:24px;height:24px}.w1{--w:7px}.w2{--w:5px}.w3{--w:3.5px}.w4{--w:2px}.box svg{fill:none;width:18px;height:18px;stroke:var(--bg);stroke-width:3.5px;z-index:1;grid-area:1/1}.task.done .box:before,.box.big[aria-checked=true]:before{background:var(--muted);border-color:var(--muted)}.task .box:active:before{background:var(--warn)}.task .body{min-width:0;min-height:52px;padding:8px var(--gutter) 8px 0;flex-direction:column;flex:1;justify-content:center;gap:3px;display:flex}.task:has(.grip) .body{padding-right:0}.task .body{cursor:pointer}.task .body:active:not(:has(.visit:active)){background:var(--warn);color:var(--on-warn)}.task .t{overflow-wrap:anywhere;font-size:16px}.task .t.p1{font-weight:700}.task.done .t{color:var(--muted);text-decoration:line-through}.task .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12px;display:flex}.task .meta .late{color:var(--late);font-weight:700}.task .meta .rep svg{fill:none;stroke:currentColor;stroke-width:2.5px;vertical-align:-2px;width:13px;height:13px}.task .meta .lab{color:var(--ink)}.task .meta .rep.unarmed{color:var(--late)}.task .grip{width:44px;color:var(--faint);touch-action:none;cursor:grab;flex:none;place-items:center;display:grid}.task .grip svg{fill:none;stroke:currentColor;stroke-width:2.5px;width:20px;height:20px}.task .grip:active{color:var(--ink)}.rows{position:relative}.task.lifted{z-index:3;background:var(--bg);outline:2px solid var(--ink);outline-offset:-2px;opacity:.9;cursor:grabbing;position:relative}.dropline{background:var(--warn);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);z-index:4;pointer-events:none;height:6px;margin-top:-2px;position:absolute;left:0;right:0}.visit{vertical-align:-4px;border:1.5px solid var(--rule);width:28px;height:22px;color:var(--ink);place-items:center;margin-left:4px;display:inline-grid}.visit svg{fill:none;stroke:currentColor;stroke-width:2.5px;width:14px;height:14px}.visit:active{background:var(--warn);color:var(--on-warn)}.linkrow{border:var(--border) solid var(--rule);min-height:40px;color:var(--ink);align-items:center;gap:8px;padding:0 8px;font-size:14px;text-decoration:none;display:flex}.linkrow span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.linkrow svg{fill:none;stroke:currentColor;stroke-width:2.5px;flex:none;width:16px;height:16px}.linkrow:active{background:var(--warn);color:var(--on-warn)}.addrow{width:100%;min-height:44px;padding:0 var(--gutter) 0 15px;color:var(--muted);border-bottom:1px solid var(--hair);align-items:center;gap:10px;font-weight:600;display:flex}.addrow svg{fill:none;stroke:currentColor;stroke-width:2.5px;width:20px;height:20px}.addrow:active{background:var(--warn);color:var(--on-warn)}.addrow.more{border-bottom:0;justify-content:center}.donetoggle{width:100%;min-height:44px;padding:0 var(--gutter) 0 15px;color:var(--muted);border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.switch.small{width:40px;height:24px}.switch.small .knob{width:18px}.parentlink{min-height:36px;color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.parentlink b{color:var(--ink)}.parentlink svg{fill:none;stroke:currentColor;stroke-width:2.5px;flex:none;width:16px;height:16px}.parentlink:disabled{opacity:.5}.parentlink:active:not(:disabled){background:var(--warn);color:var(--on-warn)}.prow{width:100%;min-height:52px;padding:0 var(--gutter);border-bottom:1px solid var(--hair);align-items:center;gap:12px;font-size:16px;display:flex}.prow i{width:18px;height:18px}.prow .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.prow .count{color:var(--muted)}.prow svg{fill:none;width:18px;height:18px;stroke:var(--faint);stroke-width:2.5px}.prow.archived{color:var(--muted)}.prow:active{background:var(--warn);color:var(--on-warn)}.palette{flex-wrap:wrap;gap:6px;display:flex}.palette button{background:var(--c);border:3px solid #0000;width:32px;height:32px}.palette button.on{border-color:var(--ink);outline:2px solid var(--bg);outline-offset:-5px}.form{border-bottom:var(--border) solid var(--rule);background:var(--panel)}.btn{background:var(--control);min-width:44px;min-height:44px;color:var(--ink);border:var(--border) solid var(--rule);letter-spacing:.04em;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:700;display:inline-flex}.btn.icon{width:44px;padding:0}.btn.fill{background:var(--ink);color:var(--bg)}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn:disabled{border-color:var(--faint);color:var(--faint);background:var(--control)}.btn:active:not(:disabled){background:var(--warn);color:var(--on-warn)}.btn svg{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:square;width:18px;height:18px}.switch{background:var(--hair);flex:none;width:52px;height:32px;padding:3px;display:flex}.switch .knob{background:var(--bg);width:26px;height:100%}.switch.on{background:var(--ink);justify-content:flex-end}.actions{gap:var(--gap);flex-wrap:wrap;align-items:center;margin-top:4px;display:flex}input.line{background:var(--control);border:0;border-bottom:var(--border) solid var(--rule);outline:none;width:100%;min-width:0;height:44px;padding:0 10px;font-size:17px}textarea.notes{field-sizing:content;background:var(--control);border:var(--border) solid var(--rule);resize:vertical;appearance:none;flex:none;width:100%;min-height:64px;padding:8px}textarea.titlein{overflow-wrap:anywhere;border:0;border-bottom:var(--border) solid var(--rule);resize:none;field-sizing:content;background:0 0;outline:none;flex:1;width:0;min-width:0;min-height:44px;padding:8px 0;font-size:20px;font-weight:700}.box.big{flex:none;place-items:center;width:44px;height:44px;display:grid}.field{align-items:center;gap:10px;display:flex}.field>span{flex:none;width:84px;font-size:15px;font-weight:600}.field.inline{justify-content:space-between}.field.inline>span{flex:1;width:auto}.field.col{flex-direction:column;align-items:stretch;gap:6px}.field.col>span{width:auto}.field select,.field input:not([type=checkbox]),.page>.row input,.field .row input{background:var(--control);border:var(--border) solid var(--rule);appearance:none;flex:1;min-width:0;height:40px;padding:0 8px}.field select{border-left:10px solid var(--c,var(--rule));background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);background-position:calc(100% - 16px),calc(100% - 10px);background-repeat:no-repeat;background-size:6px 6px}.field select:disabled,.field input:disabled{color:var(--muted);border-color:var(--faint)}.choice{flex-wrap:wrap;gap:4px;display:flex}.choice button{border:var(--border) solid var(--rule);background:var(--control);min-height:40px;padding:0 10px;font-size:13px;font-weight:700}.choice button.on{background:var(--ink);color:var(--bg)}.choice input.newlabel{border:var(--border) dashed var(--faint);background:var(--control);flex:1;min-width:100px;height:40px;padding:0 8px}.prio{flex:1;gap:4px;display:flex}.prio button{border:var(--border) solid var(--rule);flex:1;justify-content:center;align-items:center;gap:6px;height:40px;font-weight:700;display:flex}.prio button i{border:calc(var(--w) * .7) solid currentColor;width:16px;height:16px}.prio button.on{background:var(--ink);color:var(--bg)}.qa{border-bottom:var(--border) solid var(--rule);font-size:19px;line-height:1.35;position:relative}.qa .mirror,.qa textarea{font:inherit;line-height:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px 2px}.qa .mirror{color:var(--ink)}.qa textarea{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--ink);-webkit-text-fill-color:transparent;background:0 0;border:0;outline:none;position:absolute;inset:0}.qa .ph{color:var(--muted)}.qa mark{color:inherit;background:var(--panel);box-shadow:0 -2px 0 var(--k,var(--ink)) inset}.qa mark.k-project{--k:#1976d2}.qa mark.k-label{--k:#388e3c}.qa mark.k-priority{--k:#d32f2f}.qa mark.k-date,.qa mark.k-time,.qa mark.k-repeat{--k:#f57c00}.chips{flex-wrap:wrap;gap:6px;display:flex}.qchip{border:var(--border) solid var(--rule);align-items:center;gap:4px;min-height:32px;padding:0 8px;font-size:13px;font-weight:700;display:inline-flex}.qchip:disabled{color:var(--muted);border-color:var(--hair)}.qchip svg{fill:none;stroke:currentColor;stroke-width:3px;width:12px;height:12px}.searchbox{background:var(--control);border:var(--border) solid var(--rule);align-items:center;gap:8px;min-width:0;height:44px;padding:0 10px;display:flex}.searchbox input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:17px}.searchbox input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.searchbox svg{fill:none;width:18px;height:18px;stroke:var(--muted);stroke-width:2.5px;flex:none}.searchbox .clear{place-items:center;width:32px;height:32px;display:grid}.searchbox .clear svg{stroke:var(--ink)}.results{margin:0 calc(-1 * var(--gutter))}.log{flex-direction:column;gap:2px;max-height:200px;display:flex;overflow-y:auto}.modal-bg{background:var(--scrim);z-index:10;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg);width:100%;padding:var(--gutter);padding-bottom:calc(var(--gutter) + env(safe-area-inset-bottom));gap:var(--gap);border-top:3px solid var(--rule);flex-direction:column;display:flex}.modal-h{justify-content:space-between;align-items:center;font-size:17px;font-weight:700;display:flex}.modal-h .close{place-items:center;width:36px;height:36px;display:grid}.modal-h .close svg{fill:none;stroke:currentColor;stroke-width:2.5px;width:20px;height:20px}nav.toolbar{background:var(--bg);border-top:var(--border) solid var(--rule);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;flex:none;display:flex}nav.toolbar .warn,nav.toolbar .undo{letter-spacing:.04em;width:100%;padding:8px var(--gutter);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}nav.toolbar .warn{background:var(--warn);color:var(--on-warn)}nav.toolbar .undo{background:var(--ink);color:var(--bg);justify-content:space-between}nav.toolbar .undo span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}nav.toolbar .undo b{color:var(--warn);flex:none}nav.toolbar .warn:active{background:var(--ink);color:var(--bg)}nav.toolbar .warn svg{fill:none;stroke:currentColor;stroke-width:2.5px;flex:none;width:16px;height:16px}nav.toolbar .warn span{min-width:0}nav.toolbar .tabs{display:flex}nav.toolbar .tabs button{letter-spacing:.04em;min-width:0;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0 4px;font-size:9px;font-weight:700;display:flex}nav.toolbar .tabs button .ico{place-items:center;width:40px;height:30px;display:grid}nav.toolbar .tabs button .ico svg{fill:none;width:22px;height:22px;stroke:var(--ink);stroke-width:2px;stroke-linecap:square}nav.toolbar .tabs button.on .ico{background:var(--warn)}nav.toolbar .tabs button.on .ico svg{stroke:var(--on-warn)}nav.toolbar .tabs button.on{color:var(--ink)}
