New Task
New List
📋 📁 🏠 🛒 💼 🎯 🔧 📚 🌱 ⭐ 🎨 🏋️ 💡 🚀 ❤️
Confirm

.drag-handle{color:var(--muted);cursor:grab;font-size:1.3rem;padding:4px 8px;margin:-4px -4px -4px -8px;flex-shrink:0;user-select:none;line-height:1.4;touch-action:none;min-width:36px;display:flex;align-items:center;justify-content:center} .drag-handle:active{cursor:grabbing;color:var(--teal)} .task-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px} .task-body{flex:1;min-width:0} .task-title{font-size:.9rem;font-weight:500;line-height:1.35;word-break:break-word;white-space:normal;overflow-wrap:break-word;} .task-title.done-text{text-decoration:line-through;color:var(--muted)} .task-meta{display:flex;align-items:center;gap:8px;margin-top:5px;flex-wrap:wrap} .task-badge{font-size:.7rem;padding:2px 7px;border-radius:10px;font-weight:500} .badge-todo{background:#64748b22;color:var(--todo)} .badge-inprogress{background:#3b82f622;color:var(--inprogress)} .badge-waiting{background:#f59e0b22;color:var(--waiting)} .badge-done{background:#22c55e22;color:var(--done)} .task-due{font-size:.72rem;color:var(--muted)} .task-due.overdue{color:#f87171} .task-photo-count{font-size:.72rem;color:var(--muted)} .section-label{font-family:'Space Grotesk',sans-serif;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:16px 0 8px} /* ── FAB ── */ .fab{position:fixed;bottom:24px;right:20px;width:52px;height:52px;border-radius:50%;background:var(--teal);color:#fff;border:none;font-size:1.6rem;cursor:pointer;box-shadow:0 4px 20px #14b8a640;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:200} .fab:hover{background:var(--teal-dim)} /* ── OVERLAYS ── */ .overlay{display:none;position:fixed;inset:0;z-index:300;background:#00000080;align-items:flex-end;justify-content:center} .overlay.open{display:flex} .sheet{background:var(--surface);border-radius:20px 20px 0 0;width:100%;max-width:540px;max-height:92vh;overflow-y:auto;padding:20px} .sheet-title{font-family:'Space Grotesk',sans-serif;font-size:1rem;font-weight:700;margin-bottom:16px} .form-group{margin-bottom:14px} .form-label{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:5px} .form-input{width:100%;background:var(--elevated);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-size:.9rem;font-family:inherit;outline:none;transition:border-color .15s} .form-input:focus{border-color:var(--teal)} textarea.form-input{resize:vertical;min-height:70px} .status-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px} .status-opt{padding:9px 12px;border-radius:8px;border:2px solid var(--border);cursor:pointer;font-size:.82rem;font-weight:500;text-align:center;transition:all .15s;background:none;color:var(--text)} .status-opt.sel-todo{border-color:var(--todo);background:#64748b22;color:var(--todo)} .status-opt.sel-inprogress{border-color:var(--inprogress);background:#3b82f622;color:var(--inprogress)} .status-opt.sel-waiting{border-color:var(--waiting);background:#f59e0b22;color:var(--waiting)} .status-opt.sel-done{border-color:var(--done);background:#22c55e22;color:var(--done)} .btn-row{display:flex;gap:10px;margin-top:18px} .btn-primary{flex:1;padding:12px;border-radius:8px;border:none;background:var(--teal);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s} .btn-primary:hover{background:var(--teal-dim)} .btn-secondary{padding:12px 18px;border-radius:8px;border:1px solid var(--border);background:none;color:var(--muted);font-size:.9rem;cursor:pointer;font-family:inherit} .btn-danger{padding:12px 18px;border-radius:8px;border:none;background:#ef444422;color:#f87171;font-size:.9rem;cursor:pointer;font-family:inherit} /* ── PHOTO GRID ── */ .photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px} .photo-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;cursor:pointer;border:1px solid var(--border)} .photo-del{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:#ef4444cc;color:#fff;border:none;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center} .photo-wrap{position:relative;display:inline-block} /* ── MOVE LIST SELECT ── */ .list-opt{padding:12px 14px;border-radius:8px;border:1px solid var(--border);cursor:pointer;font-size:.88rem;display:flex;align-items:center;gap:10px;transition:border-color .15s;margin-bottom:6px} .list-opt:hover{border-color:var(--teal)} .list-opt.active-list{border-color:var(--teal);background:var(--elevated)} /* ── TOAST ── */ .toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);background:#1e293b;border:1px solid var(--border);color:var(--text);padding:10px 18px;border-radius:20px;font-size:.84rem;opacity:0;transition:all .25s;z-index:500;pointer-events:none;white-space:nowrap} .toast.show{opacity:1;transform:translateX(-50%) translateY(0)} /* ── EMPTY ── */ .empty{text-align:center;padding:60px 20px;color:var(--muted)} .empty-icon{font-size:2.5rem;margin-bottom:12px} .empty p{font-size:.88rem} /* ── LOGIN ── */ .login-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px} .login-logo{font-family:'Space Grotesk',sans-serif;font-size:2rem;font-weight:700;margin-bottom:8px} .login-sub{color:var(--muted);font-size:.88rem;margin-bottom:32px} .login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;width:100%;max-width:360px} .login-err{color:#f87171;font-size:.82rem;margin-top:10px;text-align:center} /* ── SETTINGS ── */ .settings-wrap{padding:20px;max-width:500px} .section-head{font-family:'Space Grotesk',sans-serif;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px} .list-row{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);margin-bottom:8px}
New Task
New List
📋 📁 🏠 🛒 💼 🎯 🔧 📚 🌱 ⭐ 🎨 🏋️ 💡 🚀 ❤️
Confirm