:root{--bg:#f6f7f9;--card:#fff;--text:#1a1f25;--muted:#8a929c;--accent:#dc2626;--accent-dark:#b91c1c;--border:#e6e8eb;--danger:#ef4444}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{max-width:560px;padding:max(env(safe-area-inset-top), 24px) 16px calc(72px + env(safe-area-inset-bottom));margin:0 auto}h1{margin:8px 0 20px;font-size:1.6rem}.add{gap:8px;margin-bottom:20px;display:flex}.add input{border:1px solid var(--border);background:var(--card);border-radius:12px;outline:none;flex:1;padding:14px;font-size:16px}.add input:focus{border-color:var(--accent)}.add button{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:12px;padding:0 20px;font-size:16px;font-weight:600}.add button:active{background:var(--accent-dark)}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.list li{background:var(--card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px 4px 4px;display:flex}.list li label{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;padding:10px;display:flex}.list li label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list li input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent);flex-shrink:0}.list li.done label span{color:var(--muted);text-decoration:line-through}.del{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-shrink:0;width:40px;height:40px;font-size:22px;line-height:1}.del:active{color:var(--danger);background:#fdecec}.empty{color:var(--muted);justify-content:center!important;padding:24px!important}.done-section{margin-top:28px}.done-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;font-size:.85rem;font-weight:600;display:flex}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:600}.topbar{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.85rem;display:flex}.topbar .who{font-weight:600}.login{max-width:360px}.login h1{text-align:center;margin:48px 0 24px}.login-form{flex-direction:column;gap:12px;display:flex}.login-form input{border:1px solid var(--border);background:var(--card);border-radius:12px;outline:none;padding:14px;font-size:16px}.login-form input:focus{border-color:var(--accent)}.login-form button{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:12px;padding:14px;font-size:16px;font-weight:600}.login-form button:disabled{opacity:.6}.login-error{color:var(--danger);text-align:center;margin:4px 0 0;font-size:.9rem}.tabs{background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 0 8px;font-size:1.3rem;display:flex}.tabs button span{font-size:.72rem;font-weight:600}.tabs button.active{color:var(--accent)}h2{margin:0;font-size:1.1rem}.empty-block{color:var(--muted);text-align:center;padding:24px}.project{background:var(--card);border:1px solid var(--border);border-radius:14px;margin-bottom:16px;padding:14px}.project-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tree{margin:0;padding:0;list-style:none}.tree .tree{border-left:2px solid var(--border);margin-left:12px;padding-left:10px}.node-row{align-items:center;gap:4px;display:flex}.node-row label{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;padding:8px 4px;display:flex}.node-row label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.node-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.node-row.done label span{color:var(--muted);text-decoration:line-through}.sub{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;width:34px;height:34px;font-size:20px;line-height:1}.sub:active{background:var(--bg);color:var(--accent)}.add-task,.add-sub{gap:8px;margin-top:8px;display:flex}.add-sub{margin-bottom:4px;margin-left:22px}.add-task input,.add-sub input{border:1px solid var(--border);background:var(--card);border-radius:10px;outline:none;flex:1;padding:10px 12px;font-size:16px}.add-task input:focus,.add-sub input:focus{border-color:var(--accent)}.add-task button{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:10px;width:44px;font-size:22px;font-weight:600}.add-task button:active{background:var(--accent-dark)}
