:root{--bg: #FBFAF7;--bg-elev: #FFFFFF;--paper: #F2F0EA;--fg: #14131A;--fg-muted: rgba(20, 19, 26, .6);--fg-faint: rgba(20, 19, 26, .36);--rule: rgba(20, 19, 26, .13);--rule-faint: rgba(20, 19, 26, .07);--accent: oklch(.6 .19 42);--warn: oklch(.58 .2 27);--ok: oklch(.58 .13 150);--pri-high: oklch(.6 .19 25);--pri-med: oklch(.68 .15 70);--pri-low: oklch(.6 .1 240);--serif: "Fraunces", Georgia, "Times New Roman", serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace}:root[data-theme=dark]{--bg: #0C0C10;--bg-elev: #16161C;--paper: #1A1A22;--fg: #ECEAF2;--fg-muted: rgba(236, 234, 242, .6);--fg-faint: rgba(236, 234, 242, .34);--rule: rgba(236, 234, 242, .14);--rule-faint: rgba(236, 234, 242, .07);--accent: oklch(.72 .16 45);--warn: oklch(.7 .18 28);--ok: oklch(.7 .14 155);--pri-high: oklch(.7 .18 30);--pri-med: oklch(.8 .14 75);--pri-low: oklch(.72 .11 245)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;color:inherit}button,input,select,label{touch-action:manipulation}input,select,textarea{font-family:inherit}::selection{background:color-mix(in oklch,var(--accent) 30%,transparent)}.label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-faint)}.mono{font-family:var(--mono)}.serif{font-family:var(--serif)}.btn{background:var(--fg);color:var(--bg);border:0;border-radius:0;font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;padding:9px 13px;cursor:pointer}.btn:hover{background:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:none;color:var(--fg-muted);border:1px solid var(--rule)}.btn.ghost:hover{color:var(--accent);border-color:var(--accent);background:none}.icon-btn{background:none;color:var(--fg-muted);border:1px solid var(--rule);border-radius:0;padding:7px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s,border-color .15s}.icon-btn:hover{color:var(--accent);border-color:var(--accent)}.icon-btn.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.input{background:var(--bg);color:var(--fg);border:1px solid var(--rule);border-radius:0;padding:8px 10px;font-size:14px;width:100%}.input:focus{outline:none;border-color:var(--accent)}select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--fg-muted);border:1px solid var(--rule);padding:2px 6px}.shell{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;align-items:center;gap:22px;padding:12px 24px;border-bottom:1px solid var(--rule);flex:none;position:relative}.brand{font-family:var(--serif);font-style:italic;font-weight:500;font-size:22px;line-height:1;letter-spacing:-.01em;color:var(--fg);-webkit-user-select:none;user-select:none}.brand .dot{color:var(--accent);font-style:normal}.tabs{display:flex;gap:2px}.tab{background:none;border:0;border-bottom:2px solid transparent;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);padding:6px 10px 8px;cursor:pointer}.tab:hover{color:var(--fg)}.tab.active{color:var(--fg);border-bottom-color:var(--accent)}.spacer{flex:1}.topbar-meta{font-family:var(--mono);font-size:10px;color:var(--fg-faint);text-transform:uppercase;letter-spacing:.06em}.menu{position:absolute;top:calc(100% + 6px);right:24px;z-index:50;width:300px;max-width:calc(100vw - 36px);background:var(--bg-elev);border:1px solid var(--rule);box-shadow:0 10px 30px #0003;padding:14px;display:flex;flex-direction:column;gap:8px}.settings-menu{width:320px;max-height:82vh;overflow-y:auto}.menu-head{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-faint)}.menu-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.menu-row label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted)}.menu-value{font-family:var(--mono);font-size:11px;color:var(--fg)}.menu-toggle{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:none;color:var(--fg-muted);border:1px solid var(--rule);padding:6px 11px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.menu-toggle:hover{color:var(--accent);border-color:var(--accent)}.hintline{font-size:12px;color:var(--fg-faint);line-height:1.4}.menu-actions{display:flex;justify-content:flex-end;margin-top:2px}.work{flex:1;display:flex;min-height:0}.side{width:240px;flex:none;background:var(--paper);border-right:1px solid var(--rule);display:flex;flex-direction:column;overflow:hidden}.side-head{padding:14px 16px 8px;display:flex;align-items:center;justify-content:space-between}.side-list{flex:1;overflow-y:auto;padding-bottom:12px}.side-item{display:flex;align-items:center;gap:8px;padding:8px 16px;cursor:pointer;border-left:2px solid transparent;color:var(--fg)}.side-item:hover{background:var(--bg-elev)}.side-item.active{border-left-color:var(--accent);background:var(--bg-elev)}.side-item .swatch{width:8px;height:8px;flex:none;background:var(--fg-faint)}.swatch.swatch-all{background:conic-gradient(#d9480f,#b8860b,#2e7d32,#00838f,#1565c0,#6a1b9a,#d9480f);border-radius:50%}.side-item .name{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-item .count{font-family:var(--mono);font-size:11px;color:var(--fg-faint)}.side-item .side-edit{background:none;border:0;color:var(--fg-faint);cursor:pointer;font-size:13px;line-height:1;padding:0 2px;opacity:0;transition:opacity .12s}.side-item:hover .side-edit{opacity:1}.side-item .side-edit:hover{color:var(--accent)}.side-item.drag-over{box-shadow:inset 0 2px 0 var(--accent)}.side-add{display:flex;gap:6px;padding:8px 12px;border-top:1px solid var(--rule)}.side-head-actions{display:flex;align-items:center;gap:4px}.side.collapsed{width:44px;align-items:center;padding-top:10px;gap:10px}.side.collapsed .side-toggle{border:0;padding:5px}.side-rail{flex:1;width:100%;overflow-y:auto;padding-bottom:12px;display:flex;flex-direction:column;align-items:stretch;gap:2px}.rail-dot{background:none;border:0;border-left:2px solid transparent;padding:9px 0;cursor:pointer;display:flex;justify-content:center}.rail-dot:hover{background:var(--bg-elev)}.rail-dot.active{border-left-color:var(--accent);background:var(--bg-elev)}.rail-dot .swatch{width:9px;height:9px;flex:none;background:var(--fg-faint)}.color-row{display:flex;gap:7px;flex-wrap:wrap}.color-dot{width:22px;height:22px;border:1px solid var(--rule);border-radius:0;cursor:pointer;padding:0;flex:none}.color-dot.on{outline:2px solid var(--accent);outline-offset:1px}.color-dot.none{background:none;color:var(--fg-faint);font-size:11px;line-height:1}.content{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.content-head{padding:16px 26px 10px;display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--rule-faint)}.content-title{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:-.01em}.title-dot{width:10px;height:10px;flex:none;align-self:center}.content-sub{font-family:var(--mono);font-size:11px;color:var(--fg-faint);text-transform:uppercase;letter-spacing:.06em}.scroll{flex:1;overflow-y:auto;padding:6px 0 40px}.quickadd{display:flex;gap:8px;padding:12px 26px}.quickadd .input{flex:1}.task{display:flex;align-items:flex-start;gap:11px;padding:9px 26px;border-bottom:1px solid var(--rule-faint)}.task:hover{background:var(--bg-elev)}.task.sub{padding-left:52px}.task.done .task-title{color:var(--fg-faint);text-decoration:line-through}.check{width:17px;height:17px;flex:none;margin-top:2px;border:1px solid var(--fg-faint);border-radius:0;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:transparent}.check:hover{border-color:var(--accent)}.check.on{background:var(--accent);border-color:var(--accent);color:var(--bg)}.pri-bar{width:3px;align-self:stretch;flex:none;background:transparent}.pri-high{background:var(--pri-high)}.pri-med{background:var(--pri-med)}.pri-low{background:var(--pri-low)}.task-body{flex:1;min-width:0}.task-title{font-size:15px;color:var(--fg)}.task-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px;align-items:center}.task-meta .due{font-family:var(--mono);font-size:11px;color:var(--fg-muted)}.task-meta .due.overdue{color:var(--warn)}.task-notes{font-size:13px;color:var(--fg-muted);margin-top:2px;white-space:pre-wrap}.task-actions{display:flex;gap:4px;opacity:0;transition:opacity .12s}.task:hover .task-actions{opacity:1}.task-actions button{background:none;border:0;color:var(--fg-faint);cursor:pointer;font-family:var(--mono);font-size:11px;padding:2px 4px}.task-actions button:hover{color:var(--accent)}.task-actions button.danger:hover{color:var(--warn)}.child-progress{font-family:var(--mono);font-size:10px;color:var(--fg-faint)}.empty{padding:40px 26px;color:var(--fg-faint);font-size:14px}.section-label{padding:14px 26px 4px}.view-tabs{display:flex;gap:2px;align-self:center}.view-tab{background:none;border:1px solid var(--rule);cursor:pointer;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);padding:5px 9px}.view-tab:hover{color:var(--accent);border-color:var(--accent)}.view-tab.active{color:var(--bg);background:var(--fg);border-color:var(--fg)}.range-nav{display:flex;gap:6px;align-items:center;align-self:center}.undated-hint{font-size:12px;color:var(--fg-faint);padding:8px 26px 0}.undated-hint button{background:none;border:0;padding:0;cursor:pointer;font-size:12px;color:var(--fg-muted);text-decoration:underline}.undated-hint button:hover{color:var(--accent)}.day-cols{flex:1;min-height:0;display:grid;margin-top:8px;border-top:1px solid var(--rule)}.day-cols.cols-3{grid-template-columns:repeat(3,1fr)}.day-cols.cols-7{grid-template-columns:repeat(7,1fr)}.day-col{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-right:1px solid var(--rule-faint)}.day-col:last-child{border-right:0}.day-col-head{flex:none;display:flex;align-items:baseline;gap:7px;padding:8px 10px;background:var(--paper);border-bottom:1px solid var(--rule-faint)}.day-col-head .dow{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-faint)}.day-col-head .dnum{font-family:var(--serif);font-size:16px;font-weight:500}.day-col.today .day-col-head .dow,.day-col.today .day-col-head .dnum{color:var(--accent)}.day-col-head .count{font-family:var(--mono);font-size:10px;color:var(--fg-faint);margin-left:auto}.day-col-body{flex:1;overflow-y:auto;padding:8px 7px 16px;display:flex;flex-direction:column;gap:5px}.col-label{padding:6px 2px 1px}.col-label.overdue{color:var(--warn)}.col-empty{color:var(--fg-faint);font-size:13px;padding:4px 2px}.day-col.drag-over{box-shadow:inset 0 0 0 1px var(--accent)}.day-card{display:flex;align-items:flex-start;gap:8px;padding:7px 8px 7px 6px;background:var(--bg-elev);border:1px solid var(--rule-faint);cursor:grab}.day-card:hover{border-color:var(--rule)}.day-card .check{margin-top:1px}.day-card-body{flex:1;min-width:0;cursor:pointer}.day-card-title{font-size:13px;line-height:1.35;overflow-wrap:break-word}.day-card.done .day-card-title{color:var(--fg-faint);text-decoration:line-through}.col-add{background:none;border:1px dashed var(--rule);color:var(--fg-faint);cursor:pointer;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:6px;margin-top:2px}.col-add:hover{color:var(--accent);border-color:var(--accent)}.cal-head{display:flex;align-items:center;gap:12px;padding:14px 26px}.cal-title{font-family:var(--serif);font-size:22px;font-weight:500;min-width:220px}.cal-scroll{flex:1;min-height:0;overflow-y:auto}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.cal-dow{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-faint);padding:6px 8px;text-align:right;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper)}.cal-cell{min-height:104px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:4px 6px;cursor:pointer;display:flex;flex-direction:column;gap:3px}.cal-cell:hover{background:var(--bg-elev)}.cal-cell.dim{background:var(--paper)}.cal-cell.today .daynum{color:var(--bg);background:var(--accent)}.daynum{font-family:var(--mono);font-size:11px;color:var(--fg-muted);align-self:flex-end;padding:1px 5px}.cal-cell.drag-over{box-shadow:inset 0 0 0 1px var(--accent)}.cal-ev{font-size:11px;color:var(--fg);background:color-mix(in oklch,var(--ev-c, var(--accent)) 16%,transparent);border-left:2px solid var(--ev-c, var(--accent));padding:1px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab;position:relative}.ev-resize{position:absolute;right:0;top:0;bottom:0;width:9px;cursor:ew-resize}.cal-ev:hover .ev-resize{border-right:3px solid var(--ev-c, var(--accent))}.cal-ev.allday{background:color-mix(in oklch,var(--ev-c, var(--ok)) 26%,transparent);border-left-color:var(--ev-c, var(--ok))}.cal-ev.cont{border-left-style:dotted}.cal-ev .t{font-family:var(--mono);color:var(--fg-muted);margin-right:4px}.cal-ev .recur{color:var(--fg-muted);font-weight:600}.cal-more{background:none;border:0;padding:0 5px;text-align:left;cursor:pointer;font-family:var(--mono);font-size:10px;color:var(--fg-faint)}.cal-more:hover{color:var(--accent)}.pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.day-pop{position:fixed;width:260px;max-height:320px;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--rule);box-shadow:0 10px 30px #0003;padding-bottom:4px}.day-pop-head{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-faint);padding:10px 14px 4px}.day-pop .agenda-ev{padding:8px 14px;font-size:13px}.cal-cell.focus{box-shadow:inset 0 0 0 2px var(--accent)}.ev-dots{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-end;padding:0 2px}.ev-dot{width:5px;height:5px;flex:none;background:var(--ev-c, var(--accent))}.ev-dot.allday{background:var(--ev-c, var(--ok))}.day-agenda{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.agenda-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 14px 8px}.agenda-ev{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule-faint);border-left:2px solid var(--ev-c, var(--accent));padding:12px 14px;font-size:15px;color:var(--fg);cursor:pointer}.agenda-ev:hover{background:var(--bg-elev)}.agenda-ev .t{font-family:var(--mono);font-size:11px;color:var(--fg-muted);min-width:58px;flex:none}.agenda-ev .recur{color:var(--fg-muted);font-weight:600}.agenda-empty{padding:12px 14px;color:var(--fg-faint);font-size:14px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--bg-elev);border:1px solid var(--rule);width:520px;max-width:100%;box-shadow:0 12px 40px #00000040;padding:18px;display:flex;flex-direction:column;gap:12px}.modal-head{display:flex;align-items:baseline;justify-content:space-between}.modal-title{font-family:var(--serif);font-size:18px;font-weight:500}.field{display:flex;flex-direction:column;gap:5px}.field-row{display:flex;gap:10px}.field-row>.field{flex:1;min-width:0}.field-row .input{min-width:0}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.btn.ghost.danger{color:var(--warn);border-color:var(--warn)}.btn.ghost.danger:hover{color:var(--bg);background:var(--warn)}.scope-choose{display:flex;flex-direction:column;gap:8px}.scope-q{font-family:var(--serif);font-size:15px;margin:2px 0 4px}.scope-hint{font-size:12px;color:var(--fg-muted);margin:-2px 0 2px;line-height:1.35}.login-wrap{height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:340px;max-width:100%;border:1px solid var(--rule);background:var(--bg-elev);padding:28px;display:flex;flex-direction:column;gap:14px}.login-brand{font-family:var(--serif);font-style:italic;font-size:30px;text-align:center}.login-brand .dot{color:var(--accent);font-style:normal}.login-err{font-family:var(--mono);font-size:11px;color:var(--warn)}.banner{font-family:var(--mono);font-size:11px;color:var(--warn);padding:6px 26px;border-bottom:1px solid var(--rule);background:color-mix(in oklch,var(--warn) 10%,transparent)}@media (hover: none){.task-actions,.side-item .side-edit{opacity:1}}@media (max-width: 720px){.topbar{gap:14px;padding:10px 14px}.brand{font-size:19px}.menu{right:14px}.work{flex-direction:column}.side{width:100%;flex-direction:row;align-items:stretch;border-right:0;border-bottom:1px solid var(--rule)}.side-head{padding:8px 4px 8px 14px;align-items:center}.side-head .label{display:none}.side-list{display:flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.side-list::-webkit-scrollbar{display:none}.side-item{flex:none;padding:7px 11px;border:1px solid var(--rule);border-left-width:1px}.side-item.active{border-color:var(--accent)}.side-item .name{flex:none;max-width:40vw}.side-item .side-edit{display:none}.side-item.active .side-edit{display:inline;opacity:1;padding:0 2px 0 4px}.side-add{border-top:0;border-left:1px solid var(--rule);flex:none;width:190px;align-items:center}.side-toggle{display:none}.task,.quickadd,.content-head,.cal-head,.empty,.banner{padding-left:14px;padding-right:14px}.section-label{padding:14px 14px 4px}.content-head{flex-wrap:wrap;row-gap:8px}.undated-hint{padding:8px 14px 0}.day-cols.cols-3,.day-cols.cols-7{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.day-col{flex:none;width:76vw;scroll-snap-align:start;border-right:1px solid var(--rule)}.day-col-body{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.task{padding-top:11px;padding-bottom:11px}.task.sub{padding-left:40px}.check{width:21px;height:21px}.task-actions{gap:8px}.task-actions button{font-size:12px;padding:5px 6px}.scroll{padding-bottom:calc(40px + env(safe-area-inset-bottom))}.input{font-size:16px}.cal-head{gap:8px;padding-top:10px;padding-bottom:10px}.cal-head .spacer{display:none}.cal-title{flex:1;min-width:0;font-size:17px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-dow{padding:5px 4px;text-align:center}.cal-cell{min-height:46px;padding:3px 4px;gap:2px}.overlay{align-items:flex-end;padding:0}.modal{width:100%;max-height:92dvh;overflow-y:auto;border-left:0;border-right:0;border-bottom:0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.field-row{flex-direction:column;gap:12px}}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:90;display:flex;align-items:center;gap:10px;max-width:min(480px,calc(100vw - 32px));padding:10px 12px;background:var(--bg-elev);border:1px solid var(--warn);box-shadow:0 10px 30px #0003;font-family:var(--mono);font-size:12px;color:var(--warn)}.toast span{min-width:0;overflow-wrap:break-word}.toast .icon-btn{flex:none}
