:root{--paper:#f4eddf;--paper-2:#fbf6ec;--ink:#221f1a;--ink-soft:#6f685b;--ink-faint:#a59c8b;--line:#221f1a1f;--line-2:#221f1a12;--accent:#b56a2e;--accent-ink:#8f5021;--p-high:#c0392b;--p-medium:#c8911e;--p-low:#6f8f5f;--radius:14px;--shadow-sm:0 1px 2px #221f1a0f, 0 2px 8px #221f1a0d;--shadow-md:0 10px 30px -12px #221f1a47;--serif:"Fraunces", "Songti SC", "STSong", Georgia, serif;--sans:"Hanken Grotesk", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--sans);color:var(--ink);background-color:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(900px 500px at 12% -8%,#b56a2e1a,#0000 60%),radial-gradient(800px 600px at 110% 10%,#6f8f5f14,#0000 55%);background-attachment:fixed;margin:0;line-height:1.5}.display{font-family:var(--serif);letter-spacing:-.01em;font-weight:600}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input{font-family:inherit}.error{color:var(--p-high);margin:14px 0 0;font-size:14px}.page{max-width:640px;margin:0 auto;padding:56px 24px 96px;animation:.5s both rise}.brand-kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 6px;font-size:12px;font-weight:600}.masthead{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.masthead-title{margin:0;font-size:clamp(40px,8vw,60px);line-height:.96}.rule{background:var(--line);height:1px;margin:26px 0 22px}.compose{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.compose-input{width:100%;color:var(--ink);background:0 0;border:none;outline:none;padding:4px 2px 12px;font-size:19px}.compose-input::placeholder{color:var(--ink-faint)}.compose-controls{border-top:1px solid var(--line-2);flex-wrap:wrap;align-items:center;gap:10px;padding-top:12px;display:flex}.compose-add{margin-left:auto}.seg{background:#221f1a0d;border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg-item{color:var(--ink-soft);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;transition:all .18s}.seg-item.seg-on{background:var(--paper-2);box-shadow:var(--shadow-sm)}.seg-item.p-high.seg-on{color:var(--p-high)}.seg-item.p-medium.seg-on{color:var(--p-medium)}.seg-item.p-low.seg-on{color:var(--p-low)}.due-field{border:1px solid var(--line);background:var(--paper-2);border-radius:10px;align-items:center;padding:6px 10px;display:inline-flex}.due-field input{color:var(--ink-soft);background:0 0;border:none;outline:none;width:120px;font-size:13px}.btn-primary{background:var(--accent);color:#fff;border-radius:10px;padding:10px 20px;font-size:15px;font-weight:600;transition:transform .12s,background .2s,box-shadow .2s;box-shadow:0 6px 16px -6px #b56a2e99}.btn-primary:hover{background:var(--accent-ink);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.55;cursor:default;transform:none}.btn-ghost{color:var(--ink-soft);border-radius:9px;padding:8px 14px;font-size:14px;font-weight:600;transition:background .18s,color .18s}.btn-ghost:hover{color:var(--ink);background:#221f1a0f}.tabs{gap:22px;margin:26px 2px 6px;display:flex}.tab{color:var(--ink-faint);border-bottom:2px solid #0000;padding:4px 0 10px;font-size:15px;font-weight:600;transition:color .18s,border-color .18s}.tab:hover{color:var(--ink-soft)}.tab-on{color:var(--ink);border-color:var(--accent)}.tab-count{color:var(--ink-faint);margin-left:2px;font-size:12px}.tab-on .tab-count{color:var(--accent-ink)}.todo-list{margin:8px 0 0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line-2);animation:.42s both rise;animation-delay:calc(var(--i) * 45ms);border-radius:10px;align-items:center;gap:14px;padding:15px 8px;transition:background .18s;display:flex}.row:hover{background:#ffffff80}.row:hover .row-del{opacity:1}.check{border:2px solid var(--ink-faint);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;transition:all .2s;display:grid}.check svg{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24px;width:15px;height:15px;transition:stroke-dashoffset .25s 50ms}.check:hover{border-color:var(--accent)}.check-on{background:var(--accent);border-color:var(--accent)}.check-on svg{stroke-dashoffset:0}.pri-dot{border-radius:50%;flex:none;width:11px;height:11px;transition:transform .15s}.pri-dot:hover{transform:scale(1.35)}.pri-dot.p-high{background:var(--p-high)}.pri-dot.p-medium{background:var(--p-medium)}.pri-dot.p-low{background:var(--p-low)}.row-main{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.row-title{color:var(--ink);cursor:text;word-break:break-word;font-size:16.5px}.row-edit{color:var(--ink);border:none;border-bottom:2px solid var(--accent);background:0 0;outline:none;flex:1;padding:2px 0;font-size:16.5px}.due-pill{color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:#221f1a0d;border-radius:999px;flex:none;align-items:center;margin-left:auto;padding:4px 11px;font-size:12.5px;font-weight:600;transition:all .18s;display:inline-flex;position:relative}.due-pill:hover{background:#221f1a1a}.due-pill input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.due-pill.due-soon{color:var(--accent-ink);background:#b56a2e1f}.due-pill.due-over{color:#fff;background:var(--p-high)}.row-del{width:28px;height:28px;color:var(--ink-faint);opacity:0;border-radius:8px;flex:none;font-size:14px;transition:opacity .18s,background .18s,color .18s}.row-del:hover{color:var(--p-high);background:#c0392b1f}.row-done .row-title{color:var(--ink-faint);text-decoration:line-through;text-decoration-thickness:1.5px}.row-done .due-pill{opacity:.5}.row-done .pri-dot{opacity:.4}.empty{text-align:center;color:var(--ink-faint);padding:60px 0}.empty-mark{font-family:var(--serif);color:var(--accent);opacity:.7;margin:0 0 8px;font-size:42px}.auth-wrap{flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100%;padding:32px;display:flex}.auth-card{background:var(--paper-2);border:1px solid var(--line);width:100%;max-width:400px;box-shadow:var(--shadow-md);border-radius:20px;padding:40px 34px;animation:.5s both rise}.auth-card h1{margin:2px 0 6px;font-size:34px;line-height:1.05}.auth-sub{color:var(--ink-soft);margin:0 0 26px;font-size:15px}.field{margin-bottom:16px;display:block}.field span{letter-spacing:.04em;color:var(--ink-soft);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field input{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--paper);border-radius:11px;outline:none;padding:12px 14px;font-size:15px;transition:border-color .18s,box-shadow .18s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b56a2e26}.auth-card .btn-primary{width:100%;margin-top:6px;padding:13px}.switch{text-align:center;color:var(--accent-ink);cursor:pointer;margin:22px 0 0;font-size:14px;font-weight:600}.switch:hover{text-decoration:underline}.auth-foot{color:var(--ink-faint);letter-spacing:.03em;font-size:12.5px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=520px){.page{padding:36px 18px 80px}.compose-add,.due-pill{margin-left:0}}
