:root{--bg:#FAFAF8;--card:#FFFFFF;--text:#111418;--text-2:#6B7280;--accent:#2563EB;--done:#16A34A;--line:#E8E8E4}@media (prefers-color-scheme:dark){:root{--bg:#0F1115;--card:#181B20;--text:#F2F3F5;--text-2:#9AA1AB;--accent:#4F83F1;--done:#34C462;--line:#262A31}}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:17px;line-height:1.45}.screen{max-width:560px;margin:0 auto;padding:20px 16px 96px;min-height:100%}.login-screen{display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding-bottom:48px}.login-box{text-align:center}.login-mark{width:64px;height:64px;border-radius:16px;margin:0 auto 20px;background:var(--accent);color:#fff;font-size:30px;font-weight:700;display:flex;align-items:center;justify-content:center}.login-box h1{font-size:22px;font-weight:600;margin-bottom:28px}.login-box input{width:100%;max-width:320px;height:50px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:17px;padding:0 16px;text-align:center;outline:none}.login-box input:focus{border-color:var(--accent)}.login-box input.shake{animation:shake .35s;border-color:#DC2626}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-8px)}50%{transform:translateX(8px)}75%{transform:translateX(-5px)}}.login-box button{display:block;width:100%;max-width:320px;height:50px;margin:14px auto 0;border-radius:12px;border:none;background:var(--accent);color:#fff;font-size:17px;font-weight:600;cursor:pointer}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.topbar h1{font-size:22px;font-weight:600}.icon-btn{height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--accent);font-size:15px;font-weight:600;cursor:pointer}.section-label{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin:22px 4px 8px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.row{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 14px;border-bottom:1px solid var(--line);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.row:last-child{border-bottom:none}.row:active{background:color-mix(in srgb,var(--accent) 6%,var(--card))}.proj-icon{width:40px;height:40px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px}.proj-icon img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.proj-name{flex:1 1;font-weight:500}.proj-count{font-size:14px}.chev,.proj-count{color:var(--text-2)}.chev{font-size:18px}.proj-header{display:flex;align-items:center;gap:14px;margin-bottom:18px}.proj-header .proj-icon{width:56px;height:56px;border-radius:13px;font-size:26px;cursor:pointer}.proj-header h1{font-size:22px;font-weight:600}.back{color:var(--accent);font-size:16px;font-weight:500;cursor:pointer;background:none;border:none;padding:8px 0;margin-bottom:4px;display:inline-block;text-decoration:none}.tabs{display:flex;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:16px}.tab{flex:1 1;height:40px;border-radius:9px;border:none;background:none;color:var(--text-2);font-size:15px;font-weight:600;cursor:pointer}.tab.active{background:var(--accent);color:#fff}.quick-add{display:flex;gap:8px;margin-bottom:14px}.quick-add input{flex:1 1;height:46px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:17px;padding:0 14px;outline:none;min-width:0}.quick-add input:focus{border-color:var(--accent)}.quick-add button{width:46px;height:46px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-size:24px;font-weight:500;cursor:pointer;flex:none}.task-row{position:relative}.checkbox{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.task-row.done .checkbox{background:var(--done);border-color:var(--done)}.checkbox.checked{background:var(--accent);border-color:var(--accent)}.checkbox.checked .checkmark{animation:draw .2s ease-out forwards}.checkmark{stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20}.task-row.done .checkmark{animation:draw .2s ease-out forwards}@keyframes draw{to{stroke-dashoffset:0}}.task-text{flex:1 1;transition:color .2s,opacity .2s}.task-row.done .task-text{color:var(--text-2);opacity:.65}@media (prefers-reduced-motion:reduce){.checkbox.checked .checkmark,.task-row.done .checkmark{animation:none;stroke-dashoffset:0}.login-box input.shake{animation:none}}.done-toggle{width:100%;text-align:left;background:none;border:none;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);padding:22px 4px 8px}.done-toggle .arrow{display:inline-block;transition:transform .15s}.done-toggle.open .arrow{transform:rotate(90deg)}.card.collapsed{display:none}.note{padding:14px;border-bottom:1px solid var(--line)}.note:last-child{border-bottom:none}.note p{font-size:16px;white-space:pre-wrap;overflow-wrap:anywhere}.note time{display:block;font-size:13px;color:var(--text-2);margin-top:6px}.note-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.note-actions{display:flex;gap:6px}.note-actions button{height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:none;color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer}.note-actions button.danger{color:#DC2626}.note-actions button.primary{color:var(--accent);border-color:var(--accent)}.note textarea{width:100%;min-height:80px;border-radius:10px;border:1px solid var(--accent);background:var(--bg);color:var(--text);font-size:16px;font-family:inherit;padding:10px 12px;outline:none;resize:vertical;line-height:1.45}.note.deleted p{color:var(--text-2);opacity:.7}.group-head{display:flex;align-items:center;gap:10px;margin:22px 4px 8px}.group-head .proj-icon{width:28px;height:28px;border-radius:7px;font-size:14px}.group-head span{font-size:14px;font-weight:600;color:var(--text-2)}.empty{text-align:center;color:var(--text-2);padding:40px 20px;font-size:15px}.drag-handle{flex:none;width:28px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--line);font-size:16px;cursor:-webkit-grab;cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing;color:var(--text-2)}.dragging{opacity:.92;box-shadow:0 6px 20px rgba(0,0,0,.15);position:relative;z-index:3;background:var(--card);border-radius:10px}.note-drag{float:right;height:24px;margin:-4px -6px 0 8px}.attach-btn{width:36px;height:36px;border-radius:9px;border:none;font-size:17px}.attach-btn,.photo-flag{flex:none;background:none;color:var(--text-2);cursor:pointer}.photo-flag{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 9px;border-radius:8px;border:1px solid var(--line);font-size:13px;font-weight:500}.img-viewer{align-items:center;padding:20px}.viewer-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:12px}.viewer-nav button{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:none;color:var(--accent);font-size:22px;cursor:pointer;line-height:1}.viewer-nav span{font-size:14px;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.viewer-box{background:var(--card);border-radius:16px;padding:14px;max-width:480px;width:100%}.viewer-box img{width:100%;border-radius:10px;display:block;margin-bottom:12px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:5;gap:0;background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav,.bottom-nav a{display:flex;justify-content:center}.bottom-nav a{flex:1 1;max-width:280px;height:56px;border:none;background:none;cursor:pointer;flex-direction:column;align-items:center;gap:3px;color:var(--text-2);font-size:11px;font-weight:600;text-decoration:none}.bottom-nav a svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8}.bottom-nav a.active{color:var(--accent)}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;align-items:flex-end;justify-content:center;z-index:10}.overlay.open{display:flex}.sheet{background:var(--card);border-radius:18px 18px 0 0;width:100%;max-width:560px;padding:24px 20px calc(28px + env(safe-area-inset-bottom))}@media (min-width:600px){.overlay{align-items:center}.sheet{border-radius:18px;max-width:400px}}.sheet h2{font-size:19px;font-weight:600;margin-bottom:20px;text-align:center}.icon-pick{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:20px}.icon-pick .proj-icon{width:72px;height:72px;border-radius:17px;font-size:32px;cursor:pointer;background-size:cover;background-position:50%;border:1px solid var(--line)}.icon-pick small{font-size:13px;color:var(--accent);font-weight:500;cursor:pointer}.sheet input[type=text]{width:100%;height:48px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:17px;padding:0 14px;outline:none;margin-bottom:16px}.sheet input[type=text]:focus{border-color:var(--accent)}.sheet-btns{display:flex;gap:10px}.sheet-btns button{flex:1 1;height:48px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer}.btn-cancel{background:none;border:1px solid var(--line);color:var(--text-2)}.btn-save{background:var(--accent);border:none;color:#fff}.new-content{width:100%;min-height:90px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:17px;font-family:inherit;padding:12px 14px;outline:none;resize:vertical;line-height:1.45;margin-bottom:16px}.new-content:focus{border-color:var(--accent)}.save-btn{width:100%;height:50px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-size:17px;font-weight:600;cursor:pointer}.save-btn:disabled{opacity:.5;cursor:default}.settings-link{text-align:center;margin-top:36px}.settings-link a{color:var(--text-2);font-size:12px;font-weight:500;text-decoration:none;opacity:.6}.setting-row{cursor:default}.setting-row:active{background:none}.setting-row input[type=time],.setting-row select{height:36px;border-radius:9px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:15px;font-family:inherit;padding:0 10px;outline:none}.setting-row input[type=time]:disabled,.setting-row select:disabled{opacity:.45}.settings-note{font-size:13px;color:var(--text-2);margin:10px 4px 0}.test-btn{margin-top:16px}.settings-status{font-size:14px;margin:12px 4px 0;color:var(--done)}.settings-status.error{color:#DC2626}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom));z-index:20;background:#DC2626;color:#fff;font-size:14px;font-weight:500;padding:10px 16px;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.2);max-width:calc(100vw - 32px);text-align:center}