:root{--bg:#fff;--bg-side:#f7f7f8;--bg-hover:#f2f3f5;--bg-active:#e9eefe;--bg-input:#f4f5f7;--border:#ebecef;--text:#1f2329;--text-2:#4e5461;--muted:#8f949e;--accent:#4772fa;--accent-weak:#e9eefe;--danger:#e5484d;--danger-weak:#fdecec;--p3:#e5484d;--p2:#f0a020;--p1:#4772fa;--p0:#b9bdc5;--event:#12a27e;--event-bg:#e2f5ef;--event-text:#0b6b53;--tag:#b26a00;--shadow:0 8px 28px #0f141e24;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1b1c1f;--bg-side:#222327;--bg-hover:#2a2b30;--bg-active:#2a3354;--bg-input:#2a2b30;--border:#303137;--text:#e8e9ec;--text-2:#b9bcc4;--muted:#7d828c;--accent:#6d8dff;--accent-weak:#2a3354;--danger:#ff6b6b;--danger-weak:#3a2326;--p0:#5d6170;--event:#2bc39b;--event-bg:#1d3a32;--event-text:#7fe0c4;--tag:#e3a54a;--shadow:0 8px 28px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1b1c1f;--bg-side:#222327;--bg-hover:#2a2b30;--bg-active:#2a3354;--bg-input:#2a2b30;--border:#303137;--text:#e8e9ec;--text-2:#b9bcc4;--muted:#7d828c;--accent:#6d8dff;--accent-weak:#2a3354;--danger:#ff6b6b;--danger-weak:#3a2326;--p0:#5d6170;--event:#2bc39b;--event-bg:#1d3a32;--event-text:#7fe0c4;--tag:#e3a54a;--shadow:0 8px 28px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font:14px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default;opacity:.45}input,select,textarea{background:var(--bg-input);border:1px solid #0000;border-radius:6px;outline:none;padding:6px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}code{background:var(--bg-input);border-radius:4px;padding:1px 5px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.muted{color:var(--muted)}.small{font-size:12px}.danger{color:var(--danger)}.error{color:var(--danger);background:var(--danger-weak);border-radius:6px;margin:8px 0;padding:8px 12px}.icon{flex:none}.icon-btn{width:30px;height:30px;color:var(--muted);border-radius:6px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.primary{background:var(--accent);color:#fff;border-radius:6px;padding:8px 14px;font-weight:500}.ghost{border:1px solid var(--border);border-radius:6px;padding:4px 10px}.ghost:hover{background:var(--bg-hover)}.spacer{flex:1}.login{background:var(--bg-side);place-items:center;min-height:100dvh;padding:16px;display:grid}.login-card{background:var(--bg);width:min(360px,100%);box-shadow:var(--shadow);text-align:center;border-radius:14px;flex-direction:column;align-items:stretch;gap:12px;padding:32px 28px;display:flex}.login-card img{align-self:center}.login-card h1{margin:0;font-size:22px}.login-card p{margin:0 0 4px;font-size:13px}.login-card input{padding:10px 12px;font-size:16px}.shell{grid-template-columns:232px minmax(0,1fr);height:100dvh;display:grid}.shell.with-detail{grid-template-columns:232px minmax(0,1fr) minmax(320px,400px)}.main{min-width:0;overflow-y:auto}.offline{background:var(--danger-weak);color:var(--danger);text-align:center;padding:4px;font-size:12px}.sidebar{background:var(--bg-side);border-right:1px solid var(--border);flex-direction:column;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.search{background:var(--bg-input);color:var(--muted);border-radius:6px;align-items:center;gap:6px;margin:0 4px 10px;padding:0 8px;display:flex}.search input{background:0 0;border:0;width:100%;padding:6px 0}.nav{flex-direction:column;gap:1px;display:flex}.nav-item{color:var(--text-2);text-align:left;border-radius:6px;align-items:center;gap:10px;width:100%;padding:7px 10px;text-decoration:none;display:flex}.nav-item:hover{background:var(--bg-hover)}.nav-item.active{background:var(--bg-active);color:var(--accent);font-weight:500}.nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.badge{color:var(--muted);text-align:right;min-width:18px;font-size:12px}.badge.danger{color:var(--danger)}.nav-section{color:var(--muted);justify-content:space-between;align-items:center;padding:14px 10px 4px;font-size:12px;display:flex}.nav-section .icon-btn{width:22px;height:22px}.nav-add input{width:100%;margin:2px 0}.nav-empty{color:var(--muted);padding:4px 10px;font-size:12px}.nav-bottom{margin-top:auto;padding-top:12px}.view{max-width:820px;margin:0 auto;padding:20px 28px 80px}.view-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.view-header h1{margin:0;font-size:22px;font-weight:650}.header-actions{gap:2px;display:flex}.quickadd{background:var(--bg-input);border-radius:var(--radius);border:1px solid #0000;margin-bottom:14px;padding:2px 10px}.quickadd:focus-within{border-color:var(--accent);background:var(--bg)}.quickadd-row{align-items:center;gap:8px;display:flex}.quickadd input:focus,.search input:focus{background:0 0;border-color:#0000;outline:none}.quickadd input{background:0 0;border:0;flex:1;min-width:0;padding:8px 0}.chips{flex-wrap:wrap;align-items:center;gap:6px;padding:0 0 8px 26px;display:flex}.chip{background:var(--bg-hover);color:var(--text-2);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;display:inline-flex}.chip button{color:var(--muted);display:inline-grid}.chip-date{background:var(--accent-weak);color:var(--accent)}.chip-event{background:var(--event-bg);color:var(--event-text)}.chip-dim{color:var(--muted)}.chip-tag{color:var(--tag)}.chip.pri-3{color:var(--p3)}.chip.pri-2{color:var(--p2)}.chip.pri-1{color:var(--p1)}.chip-hint{color:var(--muted);margin-left:auto;font-size:11px}.empty{color:var(--muted);text-align:center;padding:48px 16px}.empty.small{padding:16px}.group{margin-bottom:14px}.group-label{color:var(--text-2);align-items:center;gap:6px;padding:6px 4px;font-size:12px;font-weight:600;display:flex}.group-label.danger{color:var(--danger)}.group-toggle{width:100%}.tasks{margin:0;padding:0;list-style:none}.task{cursor:pointer;border-bottom:1px solid var(--border);border-radius:6px;align-items:flex-start;gap:6px;padding:8px 12px;display:flex}.task:hover{background:var(--bg-hover)}.task.selected{background:var(--bg-active)}.collapse{flex:none;width:18px;height:20px;margin-left:-8px}.icon-btn.collapse{width:18px;height:20px}.check{border:1.6px solid var(--p0);color:#fff;border-radius:4px;flex:none;place-items:center;width:18px;height:18px;margin-top:1px;transition:background .12s;display:grid}.check.pri-1{border-color:var(--p1)}.check.pri-2{border-color:var(--p2)}.check.pri-3{border-color:var(--p3)}.check:hover{background:var(--bg-hover)}.check.checked{background:var(--p0);border-color:var(--p0)}.check.big{width:20px;height:20px}.event-mark{background:var(--event);border-radius:2px;flex:none;width:4px;height:18px;margin:1px 7px}.task-body{flex:1;min-width:0;padding-left:4px}.task-title{word-break:break-word}.is-done .task-title{color:var(--muted);text-decoration:line-through}.task-meta{flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:1px;font-size:12px;display:flex}.task-meta .date{color:var(--accent)}.task-meta .event{color:var(--event)}.task-meta .tag{color:var(--tag)}.detail{border-left:1px solid var(--border);background:var(--bg);flex-direction:column;display:flex;overflow-y:auto}.detail-bar{border-bottom:1px solid var(--border);background:var(--bg);z-index:1;align-items:center;gap:10px;padding:10px 14px;display:flex;position:sticky;top:0}.when-pill{color:var(--accent);font-size:13px}.when-pill.danger{color:var(--danger)}.detail-body{flex-direction:column;gap:12px;padding:14px 18px 24px;display:flex}.title-input{resize:none;background:0 0;border:0;padding:2px 0;font-size:18px;font-weight:600;line-height:1.4;overflow:hidden}.title-input:focus{background:0 0}.field{grid-template-columns:72px minmax(0,1fr);align-items:start;gap:8px;display:grid}.field>label{color:var(--muted);padding-top:5px;font-size:12px}.field-body{flex-direction:column;gap:6px;display:flex}.field select{justify-self:start;min-width:140px}.inline-input{width:100%;font-size:13px}.seg{flex-wrap:wrap;gap:4px;display:inline-flex}.seg button{background:var(--bg-input);color:var(--text-2);border-radius:6px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;display:inline-flex}.seg button:hover:not(:disabled){background:var(--bg-hover)}.seg button.on{background:var(--accent-weak);color:var(--accent);font-weight:500}.pri-btn.pri-1{color:var(--p1)!important}.pri-btn.pri-2{color:var(--p2)!important}.pri-btn.pri-3{color:var(--p3)!important}.pri-btn.pri-0 .icon{color:var(--p0)}.tags-edit{flex-flow:wrap;align-items:center}.tags-edit form{flex:1;min-width:100px}.stepper{align-items:center;gap:10px;display:inline-flex}.stepper button{background:var(--bg-input);border-radius:6px;width:26px;height:26px;font-size:16px;line-height:1}.notes{resize:vertical;width:100%;min-height:90px;line-height:1.6}.subtasks .quickadd{margin:6px 0 0}.detail-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:4px;padding-top:12px;display:flex}.danger-btn{color:var(--danger);border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:13px;display:inline-flex}.danger-btn:hover{background:var(--danger-weak)}.shell.is-calendar .view{max-width:none;padding-bottom:24px}.cal-header{align-items:center}.cal-nav{align-items:center;gap:6px;display:flex}.cal-nav .seg{margin-left:8px}.cal-chip{text-align:left;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;width:100%;margin-bottom:2px;padding:0 5px;font-size:12px;line-height:18px;display:flex;overflow:hidden}.cal-chip.is-event{background:var(--event-bg);color:var(--event-text)}.cal-chip.is-task{background:var(--accent-weak);color:var(--accent)}.cal-chip.is-task.pri-3{background:var(--danger-weak);color:var(--p3)}.cal-chip.is-done{opacity:.5;text-decoration:line-through}.cal-chip-time{opacity:.8;flex:none}.cal-chip-title{text-overflow:ellipsis;overflow:hidden}.week{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;height:calc(100dvh - 190px);min-height:420px;display:flex;overflow:hidden}.week-head,.week-allday,.week-grid{grid-template-columns:52px repeat(7,minmax(0,1fr));display:grid}.week-head{border-bottom:1px solid var(--border)}.week-day{color:var(--muted);flex-direction:column;align-items:center;padding:6px 0;font-size:12px;display:flex}.week-day b{color:var(--text);border-radius:50%;width:30px;height:30px;font-size:18px;font-weight:500;line-height:30px}.week-day.picked b{background:var(--bg-hover)}.week-day.today b{background:var(--accent);color:#fff}.week-allday{border-bottom:1px solid var(--border);min-height:28px}.week-allday .gutter{text-align:right;padding:5px 6px}.week-allday-cell{border-left:1px solid var(--border);min-width:0;padding:3px}.week-body{flex:1;overflow-y:auto}.week-grid{background-image:linear-gradient(var(--border) 1px, transparent 1px);background-size:100% 48px;position:relative}.hours{position:relative}.hour-label{color:var(--muted);font-size:11px;position:absolute;right:6px;transform:translateY(-50%)}.week-col{border-left:1px solid var(--border);cursor:copy;position:relative}.week-col:hover{background:color-mix(in srgb, var(--bg-hover) 50%, transparent)}.now-line{background:var(--danger);z-index:2;pointer-events:none;height:2px;position:absolute;left:0;right:0}.now-line:before{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.week-item{text-align:left;z-index:1;border-left:3px solid;border-radius:4px;flex-direction:column;align-items:flex-start;padding:2px 6px;font-size:12px;line-height:1.35;display:flex;position:absolute;overflow:hidden}.week-item.is-event{background:var(--event-bg);color:var(--event-text);border-color:var(--event)}.week-item.is-task{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}.week-item.is-task.pri-3{background:var(--danger-weak);color:var(--p3);border-color:var(--p3)}.week-item.is-done{opacity:.5;text-decoration:line-through}.week-item-title{text-overflow:ellipsis;max-width:100%;font-weight:500;overflow:hidden}.week-item-time{opacity:.8;font-size:11px}.month{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.month-wd{color:var(--muted);text-align:center;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:4px 0;font-size:12px}.month-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;min-width:0;min-height:104px;padding:4px}.month-cell:hover{background:var(--bg-hover)}.month-cell.other{background:color-mix(in srgb, var(--bg-side) 60%, transparent)}.month-cell.other .month-num{color:var(--muted)}.month-cell.picked{background:var(--bg-active)}.month-num{text-align:center;border-radius:50%;width:22px;height:22px;margin-bottom:2px;font-size:12px;line-height:22px;display:inline-block}.month-cell.today .month-num{background:var(--accent);color:#fff}.more{color:var(--muted);padding-left:4px;font-size:11px}.dots{justify-content:center;gap:3px;display:flex}.dots i{background:var(--p0);border-radius:50%;width:5px;height:5px}.dots i.is-event{background:var(--event)}.dots i.pri-1{background:var(--p1)}.dots i.pri-2{background:var(--p2)}.dots i.pri-3{background:var(--p3)}.agenda{margin-top:16px}.when-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.when-label{color:var(--muted);width:28px;font-size:12px}.picker{min-height:30px;padding:4px 8px;font-size:13px}.picker-date{min-width:132px}.mini{background:var(--bg-input);color:var(--text-2);border-radius:6px;align-items:center;gap:3px;padding:3px 8px;font-size:12px;display:inline-flex}.mini.accent{color:var(--accent);background:var(--accent-weak)}.check-label{color:var(--text-2);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}body.dragging,body.dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.week-grid,.week-allday,.month{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.week-item{cursor:grab}.week-item.dragging,.cal-chip.dragging{opacity:.35}.resize-handle{cursor:ns-resize;height:8px;position:absolute;bottom:0;left:0;right:0}.week-item:hover .resize-handle:after{content:"";opacity:.5;background:currentColor;border-radius:1px;width:16px;height:2px;margin-left:-8px;position:absolute;bottom:2px;left:50%}.week-ghost{z-index:3;color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--bg));border:1.5px dashed var(--accent);pointer-events:none;border-radius:4px;flex-direction:column;padding:2px 6px;font-size:12px;line-height:1.35;display:flex;position:absolute;left:2px;right:2px;overflow:hidden}.week-allday-cell,.month-cell{cursor:copy}.allday-band{pointer-events:none;background:color-mix(in srgb, var(--event-bg) 70%, transparent);border-left:3px solid var(--event);position:absolute;top:0;bottom:0}.allday-band.is-done{opacity:.5}.allday-band-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;color:var(--event-text);pointer-events:auto;text-align:left;padding:2px 6px;font-size:11px;font-weight:500;display:block;position:sticky;top:0;overflow:hidden}.drop-target{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-weak)!important}.chip-ghost{z-index:60;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:var(--accent);color:#fff;max-width:220px;box-shadow:var(--shadow);border-radius:4px;padding:2px 8px;font-size:12px;position:fixed;overflow:hidden}.agenda-head .mini{font-weight:500}.pop-scrim{z-index:44;position:fixed;inset:0}.pop{z-index:45;background:var(--bg);border:1px solid var(--border);width:320px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:10px;padding:12px;animation:.12s ease-out pop;display:flex;position:fixed}.pop-title{font-size:15px;font-weight:500}.pop-foot{align-items:center;gap:8px;display:flex}.toasts{z-index:50;flex-direction:column;gap:8px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--shadow);background:#2b2d33;border-radius:8px;align-items:center;gap:12px;padding:8px 8px 8px 14px;font-size:13px;animation:.15s ease-out pop;display:flex}.toast button{color:#9db4ff;font-weight:500}.toast .icon-btn{color:#aaa;width:22px;height:22px}.toast .icon-btn:hover{color:#fff;background:#ffffff1a}@keyframes pop{0%{opacity:0;transform:translateY(6px)}}.tabbar,.scrim{display:none}@media (max-width:760px){.shell,.shell.with-detail{height:auto;min-height:100dvh;display:block}.main{padding-top:env(safe-area-inset-top);padding-bottom:calc(64px + env(safe-area-inset-bottom));overflow:visible}.view{padding:14px 16px 24px}.view-header h1{font-size:26px}input,select,textarea{font-size:16px}.task{padding:11px 8px}.sidebar{z-index:40;width:min(300px,82vw);padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom));box-shadow:var(--shadow);animation:.18s ease-out slide;position:fixed;inset:0 auto 0 0}.nav-item{padding:10px 12px}@keyframes slide{0%{transform:translate(-100%)}}.scrim{z-index:39;background:#00000059;display:block;position:fixed;inset:0}.detail{z-index:30;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);border:0;position:fixed;inset:0}.field{grid-template-columns:64px minmax(0,1fr)}.tabbar{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:1px;padding:7px 0 5px;font-size:11px;display:flex}.tab.active{color:var(--accent)}.tab-icon{position:relative}.tab-badge{background:var(--danger);color:#fff;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:-4px;right:-10px}.toasts{bottom:calc(76px + env(safe-area-inset-bottom))}.cal-header{flex-wrap:wrap}.week{height:calc(100dvh - 260px)}.week-head,.week-allday,.week-grid{grid-template-columns:36px repeat(7,minmax(0,1fr))}.hour-label{font-size:9px;right:3px}.week-item{border-left-width:2px;padding:1px 3px;font-size:10px}.month-cell{text-align:center;min-height:52px}.pop-scrim{background:#0000004d}.pop.sheet{width:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;animation:.18s ease-out sheet;bottom:0;left:0;right:0}@keyframes sheet{0%{transform:translateY(100%)}}.picker{min-height:36px}}
