*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--keyboard-height: 0px;--bg-primary: #0d0d1a;--bg-secondary: #12122b;--bg-card: #1a1a35;--bg-elevated: #22224a;--bg-input: #1e1e40;--bg-hover: #262650;--grad-primary: linear-gradient(135deg, #7c3aed 0%, #06b6d4 100%);--grad-accent: linear-gradient(135deg, #ec4899 0%, #f97316 100%);--grad-success: linear-gradient(135deg, #10b981 0%, #06b6d4 100%);--grad-subtle: linear-gradient(135deg, rgba(124,58,237,.15) 0%, rgba(6,182,212,.15) 100%);--grad-card: linear-gradient(160deg, #1e1e3f 0%, #161630 100%);--purple: #7c3aed;--purple-light: #9d68f5;--cyan: #06b6d4;--pink: #ec4899;--orange: #f97316;--green: #10b981;--text-primary: #f0efff;--text-secondary: #9090b8;--text-muted: #555580;--text-inverse: #0d0d1a;--border: rgba(255,255,255,.07);--border-active: rgba(124,58,237,.5);--border-hover: rgba(255,255,255,.12);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0,0,0,.3);--shadow-md: 0 4px 20px rgba(0,0,0,.4);--shadow-lg: 0 8px 40px rgba(0,0,0,.5);--shadow-glow: 0 0 20px rgba(124,58,237,.3);--transition: .18s cubic-bezier(.4,0,.2,1);--transition-slow: .3s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{overscroll-behavior:none}button,a,input,textarea,select,label{touch-action:manipulation}.app-shell{position:fixed;top:0;bottom:var(--keyboard-height);left:0;right:0;max-width:480px;margin:0 auto;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden}.screen{flex:1;display:flex;flex-direction:column;overflow:hidden;animation:screenIn .25s var(--transition) both}@keyframes screenIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.scroll-content{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:100px}.scroll-content::-webkit-scrollbar{display:none}.welcome-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;background:radial-gradient(ellipse at 30% 20%,rgba(124,58,237,.25) 0%,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(6,182,212,.2) 0%,transparent 60%),var(--bg-primary);animation:screenIn .4s ease both}.welcome-logo{width:72px;height:72px;border-radius:var(--radius-lg);background:var(--grad-primary);display:flex;align-items:center;justify-content:center;margin-bottom:24px;box-shadow:var(--shadow-glow),var(--shadow-lg);animation:logoIn .6s ease .1s both}@keyframes logoIn{0%{opacity:0;transform:scale(.7) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0)}}.welcome-logo svg{width:38px;height:38px;fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.welcome-title{font-size:36px;font-weight:800;letter-spacing:-1px;background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;animation:fadeUp .5s ease .2s both}.welcome-subtitle{color:var(--text-secondary);font-size:15px;text-align:center;margin-bottom:48px;animation:fadeUp .5s ease .3s both}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.welcome-form{width:100%;display:flex;flex-direction:column;gap:16px;animation:fadeUp .5s ease .4s both}.input-group{display:flex;flex-direction:column;gap:8px}.input-label{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px}.text-input{background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:16px;padding:14px 16px;outline:none;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition);width:100%}.text-input::placeholder{color:var(--text-muted)}.text-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px #7c3aed2e;background:var(--bg-elevated)}.btn-primary{background:var(--grad-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:16px;font-weight:700;padding:16px;cursor:pointer;transition:opacity var(--transition),transform var(--transition),box-shadow var(--transition);box-shadow:0 4px 16px #7c3aed59;letter-spacing:.3px}.btn-primary:hover{opacity:.92;box-shadow:0 6px 24px #7c3aed73}.btn-primary:active{transform:scale(.98);opacity:.88}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.home-header{padding:56px 20px 20px;background:linear-gradient(180deg,rgba(124,58,237,.08) 0%,transparent 100%);flex-shrink:0}.home-greeting{font-size:13px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.home-name{font-size:28px;font-weight:800;letter-spacing:-.5px;line-height:1.2}.home-name span{background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-stats{display:flex;gap:10px;margin-top:16px}.stat-pill{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);padding:6px 14px;font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.stat-pill-value{font-weight:700;color:var(--text-primary)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 12px}.section-title{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.2px}.lists-grid{display:flex;flex-direction:column;gap:12px;padding:0 16px}.list-card{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 18px 16px;cursor:pointer;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);position:relative;overflow:hidden;animation:cardIn .3s ease both}@keyframes cardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.list-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-primary);opacity:0;transition:opacity var(--transition)}.list-card:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.list-card:hover:before{opacity:1}.list-card:active{transform:scale(.99) translateY(0)}.list-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.list-card-title{font-size:17px;font-weight:700;color:var(--text-primary);line-height:1.3;flex:1}.btn-icon{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color var(--transition),background var(--transition);flex-shrink:0}.btn-icon:hover{color:var(--pink);background:#ec48991a}.list-card-progress{margin-bottom:10px}.progress-bar{height:4px;background:var(--bg-elevated);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);background:var(--grad-success);transition:width .4s cubic-bezier(.4,0,.2,1)}.list-card-footer{display:flex;align-items:center;gap:10px}.badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:var(--radius-full);display:flex;align-items:center;gap:5px}.badge-todo{background:#7c3aed26;color:var(--purple-light);border:1px solid rgba(124,58,237,.2)}.badge-done{background:#10b9811f;color:#34d399;border:1px solid rgba(16,185,129,.2)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.fab-container{position:absolute;bottom:28px;right:20px;z-index:10}.fab{width:58px;height:58px;border-radius:var(--radius-full);background:var(--grad-primary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 24px #7c3aed73,var(--shadow-lg);transition:transform var(--transition),box-shadow var(--transition);color:#fff}.fab:hover{transform:scale(1.06);box-shadow:0 6px 32px #7c3aed8c,var(--shadow-lg)}.fab:active{transform:scale(.96)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;text-align:center;color:var(--text-muted);gap:12px}.empty-state-icon{width:64px;height:64px;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-muted);margin-bottom:8px}.empty-state h3{color:var(--text-secondary);font-size:17px;font-weight:700}.empty-state p{font-size:14px;max-width:240px}.detail-header{padding:56px 16px 12px;background:linear-gradient(180deg,rgba(124,58,237,.08) 0%,transparent 100%);flex-shrink:0}.detail-header-row{display:flex;align-items:center;gap:8px}.btn-back{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:10px;transition:background var(--transition),color var(--transition),border-color var(--transition);flex-shrink:0}.btn-back:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-hover)}.title-input{flex:1;background:transparent;border:none;border-bottom:1.5px solid transparent;color:var(--text-primary);font-size:22px;font-weight:800;letter-spacing:-.5px;padding:4px 4px 6px;outline:none;transition:border-color var(--transition);min-width:0}.title-input:focus{border-bottom-color:var(--purple)}.title-input::placeholder{color:var(--text-muted)}.add-item-bar{padding:10px 16px;flex-shrink:0;background:var(--bg-primary);border-bottom:1px solid var(--border)}.add-item-row{display:flex;gap:8px;align-items:center;background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:4px 4px 4px 14px;transition:border-color var(--transition),box-shadow var(--transition)}.add-item-row:focus-within{border-color:var(--purple);box-shadow:0 0 0 3px #7c3aed26}.add-item-input{flex:1;background:none;border:none;color:var(--text-primary);font-size:15px;padding:8px 0;outline:none}.add-item-input::placeholder{color:var(--text-muted)}.btn-add-item{background:var(--grad-primary);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;padding:8px 12px;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition),transform var(--transition);flex-shrink:0}.btn-add-item:hover{opacity:.88}.btn-add-item:active{transform:scale(.95)}.btn-add-item:disabled{opacity:.3;cursor:not-allowed}.list-section{margin:0 16px 8px}.list-section-header{display:flex;align-items:center;gap:8px;padding:14px 0 8px;cursor:pointer;-webkit-user-select:none;user-select:none}.list-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);flex:1}.list-section-count{font-size:12px;font-weight:600;color:var(--text-muted);background:var(--bg-elevated);padding:2px 8px;border-radius:var(--radius-full)}.chevron-icon{color:var(--text-muted);transition:transform var(--transition);flex-shrink:0}.chevron-icon.open{transform:rotate(90deg)}.items-list{display:flex;flex-direction:column;gap:4px}.todo-item{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 10px 12px 14px;transition:background var(--transition),border-color var(--transition),transform var(--transition);position:relative;cursor:default;touch-action:manipulation}.todo-item:hover{background:var(--bg-elevated);border-color:var(--border-hover)}.todo-item.is-dragging{background:var(--bg-elevated);border-color:var(--border-active);box-shadow:var(--shadow-lg),var(--shadow-glow);z-index:100;transform:scale(1.02)}.todo-item.is-checked{opacity:.6}.todo-item.is-checked .item-text{text-decoration:line-through;color:var(--text-muted)}.item-checkbox{width:22px;height:22px;border-radius:6px;border:2px solid var(--border-hover);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color var(--transition),background var(--transition),transform var(--transition);position:relative;overflow:hidden}.item-checkbox:hover{border-color:var(--purple);background:#7c3aed1a}.item-checkbox.checked{background:var(--grad-success);border-color:transparent}.item-checkbox.checked:after{content:"";width:6px;height:10px;border:2.5px solid white;border-top:none;border-left:none;transform:rotate(45deg) translateY(-1px);display:block}.item-text{flex:1;font-size:15px;line-height:1.4;color:var(--text-primary);word-break:break-word}.item-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--transition);flex-shrink:0}.todo-item:hover .item-actions{opacity:1}.btn-item-action{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:5px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color var(--transition),background var(--transition)}.btn-item-action:hover{background:var(--bg-elevated)}.btn-item-action.delete:hover{color:var(--pink);background:#ec48991a}.btn-item-action.move-up:hover,.btn-item-action.move-down:hover{color:var(--cyan);background:#06b6d41a}.drag-handle{color:var(--text-muted);cursor:grab;display:flex;align-items:center;padding:2px 0;flex-shrink:0;opacity:0;transition:opacity var(--transition),color var(--transition);touch-action:none}.todo-item:hover .drag-handle{opacity:1}.drag-handle:hover{color:var(--text-secondary)}.drag-handle:active{cursor:grabbing}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-end;justify-content:center;animation:backdropIn .2s ease both}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal-sheet{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:8px 24px 40px;width:100%;max-width:480px;animation:sheetIn .28s cubic-bezier(.4,0,.2,1) both}@keyframes sheetIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-handle{width:36px;height:4px;background:var(--border-hover);border-radius:var(--radius-full);margin:10px auto 20px}.modal-title{font-size:20px;font-weight:800;margin-bottom:20px;color:var(--text-primary)}.modal-actions{display:flex;gap:10px;margin-top:16px}.btn-secondary{flex:1;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);font-size:15px;font-weight:600;padding:14px;cursor:pointer;transition:background var(--transition),border-color var(--transition)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-hover)}.btn-danger{flex:1;background:#ec489926;border:1px solid rgba(236,72,153,.25);border-radius:var(--radius-md);color:var(--pink);font-size:15px;font-weight:600;padding:14px;cursor:pointer;transition:background var(--transition),border-color var(--transition)}.btn-danger:hover{background:#ec489940}.loading-screen{flex:1;display:flex;align-items:center;justify-content:center}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--purple);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(0);background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-md);padding:12px 20px;font-size:14px;font-weight:500;color:var(--text-primary);box-shadow:var(--shadow-lg);z-index:2000;max-width:300px;text-align:center;animation:toastIn .3s ease both;white-space:nowrap}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:480px){.app-shell{border-left:1px solid var(--border);border-right:1px solid var(--border);box-shadow:0 0 80px #0009}}
