:root{--bg:#f6f7f0;--ink:#354935;--muted:#86917d;--green:#667e55;--line:#e1e7d7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}button,input,textarea,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #9db984;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}.shell{max-width:740px;margin:auto;padding:0 24px 130px}header{display:flex;justify-content:space-between;align-items:center;padding:26px 0}.brand{display:flex;gap:10px;align-items:center;font-family:"Songti SC",serif;font-size:25px;letter-spacing:3px}.brand>span{background:var(--green);color:#fff9e9;width:37px;height:40px;display:grid;place-items:center;border-radius:12px 12px 12px 3px;font-size:21px}.quiet{font-size:12px;color:var(--muted);padding:8px}.intro{padding:20px 0 24px}.intro small{font-size:11px;letter-spacing:1px;color:#96a087}.intro h1{font-family:"Songti SC",serif;font-weight:500;letter-spacing:3px;font-size:36px;margin:12px 0 8px}.intro p{color:var(--muted);font-size:13px;margin:0}.banner{padding:13px 16px;border:1px solid var(--line);background:#edf1e4;border-radius:12px;margin-bottom:22px;font-size:12px;color:#7c8d6b}.card{border:1px solid var(--line);background:#fffef8;border-radius:18px;padding:24px;margin-bottom:22px}h2{font-size:18px;font-weight:550;margin:8px 0 12px;letter-spacing:.5px}h3{font-size:15px;font-weight:500}.eyebrow{font-size:9px;letter-spacing:2px;color:#a0ad8e}.muted{font-size:13px;color:var(--muted)}textarea,input,select{background:#fafbf5;border:1px solid var(--line);border-radius:9px;padding:12px;min-width:0;font-size:16px}textarea{width:100%;min-height:138px;resize:vertical;line-height:1.9}textarea::placeholder,input::placeholder{color:#a8b19d}.primary{background:var(--green);color:#fffcf0;width:100%;border-radius:10px;padding:14px 18px;text-align:center;display:flex;justify-content:space-between;margin-top:16px}.primary:hover{background:#506b41}.helper{display:block;font-size:11px;line-height:1.8;color:#99a68a;margin-top:12px}.focus-card{background:#eaf0df;border-color:#dce6cf}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.pill{color:#8b9d75;font-size:11px;border:1px solid #d3dfc4;border-radius:20px;padding:4px 10px;white-space:nowrap}.task{border:1px solid var(--line);background:#fffef9;border-radius:12px;padding:17px;margin:10px 0;display:flex;gap:12px;align-items:flex-start}.focus-card .task{border:0;border-top:1px solid #d7e2ca;background:none;border-radius:0;padding:16px 0;margin:0}.task-body{flex:1;min-width:0}.task-title{display:block;text-align:left;padding:0;overflow-wrap:anywhere;line-height:1.8}.task.done .task-title{text-decoration:line-through;color:#9da791}.check{border:1.5px solid #b3c1a4;width:22px;height:22px;min-width:22px;border-radius:50%;padding:0;margin-top:4px;font-size:12px;line-height:18px}.check.checked{color:white;background:#8a9f75}.task small{color:#95a780;font-size:11px;display:block;margin-top:5px}.task .question{color:#b58e52}.task-actions{display:flex;gap:14px;margin-top:10px}.task-actions button{font-size:11px;color:#94a085;padding:0}.empty{padding:25px 15px;color:#93a282;text-align:center;font-size:13px;line-height:2}.empty span{display:block;font-size:30px;color:#b6c5a5;margin-bottom:10px}.list-section{margin-top:30px}.section-head input[type=search]{font-size:13px;max-width:145px;padding:8px 10px}.filters{display:flex;gap:10px;margin:14px 0;flex-wrap:wrap}.filters button{font-size:12px;color:#929e84;padding:7px 13px;border-radius:20px}.filters .selected{background:#e4ecd9;color:#5b7449}.records{margin-top:32px}.record{border-left:2px solid #d6e0c9;padding:8px 0 10px 15px;margin:12px 0}.record p{margin:0 0 7px;font-size:13px;color:#7f8d74;white-space:pre-wrap;overflow-wrap:anywhere;max-height:150px;overflow:auto}.record small{font-size:11px;color:#9ba68d;display:block}.record button,.record a{font-size:11px;color:#77915e;margin:5px 12px 0 0;padding:0}.record .error{color:#ac8b5b}.record a{text-decoration:underline}footer{text-align:center;font-size:10px;color:#a6b097;margin:36px 0 10px}#bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:9px 18px calc(9px + env(safe-area-inset-bottom));background:#f8f9f2f5;border-top:1px solid var(--line);backdrop-filter:blur(15px);z-index:5}#bottom-nav button{font-size:22px;color:#a0ac93;min-width:70px;padding:0 14px}#bottom-nav button span{display:block;font-size:11px}#bottom-nav .selected{color:#5c774a}#nav-capture{background:#e4ecd9;border-radius:12px}dialog{background:#fafbf4;border:1px solid var(--line);border-radius:20px;padding:25px;width:min(500px,calc(100vw - 28px));max-height:85dvh;overflow-y:auto;color:var(--ink)}dialog::backdrop{background:#26391e55;backdrop-filter:blur(3px)}dialog label,form label{display:block;font-size:12px;color:#8c9c7b;margin:16px 0}dialog input,dialog select,form label input{display:block;width:100%;margin-top:8px}dialog textarea{margin-top:8px}.close{font-size:26px;color:#96a889}.row{display:flex;justify-content:space-between;gap:12px}.link{color:#789463;font-size:12px;padding:8px 0}.danger{color:#ac8f7d;font-size:12px;display:block;margin:15px auto 0}.setting{border-top:1px solid var(--line);margin-top:22px;padding-top:6px}.toggle{display:flex;align-items:center;gap:9px}.toggle input{display:inline;width:19px;height:19px;margin:0;accent-color:var(--green)}.secondary{display:inline-block;border:1px solid #d8e2cc;background:#eef3e5;color:#6f875a;font-size:12px;border-radius:9px;padding:10px 13px}.file-label{cursor:pointer;display:inline-block;margin:10px}.code-row{display:flex;align-items:flex-end;gap:12px}.code-row label{flex:1}.code-row button{margin-bottom:16px;white-space:nowrap}.notice{position:fixed;bottom:calc(91px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 35px);background:#465c39;color:#fffdf1;padding:12px 18px;border-radius:12px;font-size:13px;z-index:20;box-shadow:0 8px 25px #26391e22}.notice button{color:#d9e7bd;text-decoration:underline;margin-left:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:900px){.shell{padding-top:20px}#bottom-nav{left:50%;transform:translateX(-50%);width:740px;border:1px solid var(--line);border-radius:18px 18px 0 0}.capture{padding:28px}#capture{min-height:150px}.intro h1{font-size:43px}.card{padding:28px}}@media(max-width:390px){.shell{padding:0 16px 120px}.card{padding:19px}.intro h1{font-size:32px}.section-head input[type=search]{max-width:115px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Macaron atelier: soft paper, painted shapes, legible plum typography. */
:root{--bg:#fff8f3;--ink:#574454;--muted:#886c80;--green:#9271ab;--line:#eadde8}
body{background:radial-gradient(ellipse at 8% 8%,#ffe4e9aa,transparent 38%),radial-gradient(ellipse at 96% 36%,#eee3ff88,transparent 40%),var(--bg)}
.shell{position:relative}header{padding-top:30px}.brand{color:#70506e}.brand>span{background:#d6b5df;color:#553c60;box-shadow:4px 4px 0 #f5dece;transform:rotate(-5deg);border-radius:15px 15px 15px 5px}
.intro{position:relative;isolation:isolate;padding:28px 0 34px}.intro::before{content:"";position:absolute;right:5px;top:16px;width:98px;height:104px;background:#efd2de;border-radius:44% 56% 61% 39% / 52% 41% 59% 48%;transform:rotate(20deg);z-index:-1;opacity:.6}.intro::after{content:"✳";position:absolute;right:22px;top:26px;font-size:67px;font-weight:200;color:#ab8ac4;transform:rotate(-13deg);z-index:-1}.intro small{color:#92758a}.intro h1{color:#68526d;font-weight:500}.intro p{color:#8d7183}
.banner{background:#fff1db;border-color:#f0dfbf;color:#876b42}.card{background:#fffcf9;border-color:#ecdce5;border-radius:25px;box-shadow:0 7px 23px #ad7b9e09}.eyebrow{color:#9174a0}.capture{position:relative;background:#fff0f2;border-color:#f0d5df}.capture::before{content:"";display:block;position:absolute;top:-8px;left:calc(50% - 32px);width:64px;height:18px;background:#dfd0f2aa;transform:rotate(-4deg);border-left:2px dotted #c4afd9;border-right:2px dotted #c4afd9}.capture h2{color:#88546b}.capture .eyebrow{color:#a9778b}
textarea,input,select{background:#fffcfb;border-color:#e9d8e4;color:#614c61;border-radius:13px}textarea::placeholder,input::placeholder{color:#9b8194}.primary{background:#9673ad;color:white;border-radius:15px;box-shadow:0 4px 0 #81609522}.primary:hover{background:#805b99}.primary:active{transform:translateY(1px)}.helper{color:#8e7786}.quiet{color:#8b718a}.focus-card{background:#eee7fa;border-color:#ded1ee}.focus-card .task{border-color:#dacde7}.pill{color:#78598e;background:#f8f2ff;border-color:#d8c9e8}.task{border-color:#e7dce5;border-radius:18px;background:#fffdfb}.task:nth-child(3n+2){background:#f0f8f2;border-color:#dae9de}.task:nth-child(3n+3){background:#fff7e5;border-color:#f1e4c6}.focus-card .task{background:transparent;border-radius:0}.check{border-color:#b99ac5}.check.checked{background:#7c9b83;border-color:#7c9b83}.task small{color:#836c86}.task .question{color:#a37438}.task-actions button{color:#8a6d8e}.task.done .task-title{color:#8d8990}.filters button{color:#876d89}.filters .selected{background:#e8dbf5;color:#704c89}.empty{color:#88718f}.empty span{color:#c7acd6}.record{border-color:#dfc5dc}.record p{color:#80667c}.record small{color:#937f90}.record button,.record a{color:#87619a}footer{color:#927e90}.secondary{background:#edf5ec;border-color:#d6e5d6;color:#597c61}.link{color:#88649b}.danger{color:#aa6a80}
#bottom-nav{background:#fff9f8f2;border-color:#eadde7;box-shadow:0 -5px 24px #9674a00a}#bottom-nav button{color:#9a8099}#bottom-nav .selected{color:#805798}#nav-capture{background:#f4dfe8!important;color:#99617d!important}.notice{background:#705279;color:#fff9fc}.notice button{color:#ffe6b1}dialog{background:#fff9f7;border-color:#e6d5e5;border-radius:25px}dialog::backdrop{background:#60456344}.close{color:#a17caa}.setting{border-color:#e6d7e5}.toggle input{accent-color:#9271ab}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-color:#a480bc}
@media(prefers-reduced-motion:no-preference){.check.checked{animation:little-bloom .3s ease-out}@keyframes little-bloom{0%{transform:scale(.8)}60%{transform:scale(1.2)}100%{transform:scale(1)}}}
@media(max-width:390px){.intro::before{width:78px;height:86px}.intro::after{font-size:52px;right:17px;top:33px}}
