.app{flex-direction:column;min-height:100vh;padding-bottom:100px;display:flex}.header{z-index:10;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:0 0 28px 28px;padding:0;position:sticky;top:0;overflow:hidden;box-shadow:0 4px 20px #667eea40}.header-bg-image{background-repeat:no-repeat;transition:all .3s;position:absolute;inset:0}.header-bg-overlay{background:linear-gradient(135deg,#1e1e3c73 0%,#3c1e5059 100%);position:absolute;inset:0}.header-content{z-index:2;padding:24px 20px 20px;position:relative}.header-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.header-top-right,.header-greeting{align-items:center;gap:8px;display:flex}.greeting-text{color:#fff;font-size:22px;font-weight:700}.greeting-emoji{font-size:22px;animation:2s ease-in-out infinite wave}@keyframes wave{0%,to{transform:rotate(0)}25%{transform:rotate(20deg)}75%{transform:rotate(-10deg)}}.header-date{color:#ffffffb3;background:#ffffff26;border-radius:20px;padding:4px 10px;font-size:13px}.bg-edit-btn{color:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;transition:all .2s;display:flex}.bg-edit-btn:active{background:#ffffff4d;transform:scale(.9)}.header-motivation{color:#ffffffe6;margin-bottom:16px;font-size:14px}.progress-section{align-items:center;gap:12px;display:flex}.progress-bar{background:#fff3;border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#fdcb6e,#fd79a8);border-radius:3px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.progress-text{color:#ffffffd9;white-space:nowrap;font-size:12px;font-weight:600}.empty-state{flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.empty-icon{opacity:.5;margin-bottom:16px;font-size:56px}.empty-text{color:var(--text-secondary);font-size:16px}.empty-sub{color:var(--text-muted);margin-top:8px;font-size:13px}.task-list{flex:1;padding:16px}.task-item{background:var(--bg-card);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:16px;align-items:center;margin-bottom:12px;padding:18px 16px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 2px 12px #0000000a}.task-item:active{transform:scale(.97)}.task-completed{opacity:.5;background:#fafafa}.priority-indicator{border-radius:4px 0 0 4px;width:4px;position:absolute;top:0;bottom:0;left:0}.checkbox{border:2.5px solid #e0e0e0;border-radius:50%;justify-content:center;align-items:center;width:26px;min-width:26px;height:26px;margin-left:8px;margin-right:14px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.checkbox-done{background:linear-gradient(135deg,#66bb6a,#43a047);border-color:#0000;box-shadow:0 2px 8px #4caf504d}.task-title{color:var(--text-primary);word-break:break-word;flex:1;margin-right:10px;font-size:15px;font-weight:500;line-height:1.5;transition:all .3s}.title-done{color:var(--text-muted);font-weight:400;text-decoration:line-through}.delete-btn{width:28px;height:28px;color:var(--text-muted);opacity:0;background:0 0;border-radius:50%;justify-content:center;align-items:center;margin-left:8px;font-size:20px;transition:all .2s;display:flex}.task-item:hover .delete-btn{opacity:1}.delete-btn:hover{background:var(--danger-light);color:var(--danger)}@media (hover:none){.delete-btn{opacity:.4}}.add-button{z-index:100;background:linear-gradient(135deg,#5b9fe8,#3a7bd5);border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:30px;right:calc(50% - 210px);box-shadow:0 6px 20px #4a90d959}.add-button:active{transform:scale(.88)rotate(90deg);box-shadow:0 3px 12px #4a90d940}@media (width<=480px){.add-button{right:24px}}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-card);border-radius:24px 24px 0 0;width:100%;max-width:480px;padding:24px 24px 40px;animation:.3s cubic-bezier(.4,0,.2,1) slideUp}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{font-size:20px;font-weight:700}.modal-close{width:32px;height:32px;color:var(--text-muted);background:#f5f5f5;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:all .2s;display:flex}.modal-close:active{background:#ebebeb;transform:scale(.9)}.task-input{width:100%;color:var(--text-primary);background:#f5f5f5;border-radius:12px;padding:16px;font-size:16px}.task-input::placeholder{color:var(--text-muted)}.priority-label{color:var(--text-secondary);margin-top:24px;margin-bottom:14px;font-size:14px;font-weight:600}.priority-selector{gap:12px;display:flex}.priority-card{background:#f8f9fa;border:2px solid #0000;border-radius:16px;flex-direction:column;flex:1;align-items:center;padding:16px 8px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.priority-card-active{background:#fff;border-color:#e8e8e8;transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.priority-card:active{transform:scale(.95)}.priority-card-dot{border-radius:50%;width:8px;height:8px;margin-bottom:8px;transition:all .3s}.priority-card-active .priority-card-dot{width:10px;height:10px;box-shadow:0 2px 8px #00000026}.priority-card-emoji{margin-bottom:8px;font-size:28px;transition:transform .3s}.priority-card-active .priority-card-emoji{transform:scale(1.15)}.priority-card-label{font-size:13px;font-weight:600;transition:all .3s}.priority-card-check{border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;animation:.3s cubic-bezier(.4,0,.2,1) popIn;display:flex;position:absolute;top:8px;right:8px}@keyframes popIn{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}.confirm-btn{color:#fff;background:linear-gradient(135deg,#5b9fe8,#3a7bd5);border-radius:14px;width:100%;margin-top:28px;padding:16px;font-size:16px;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #4a90d940}.confirm-btn:active{transform:scale(.97);box-shadow:0 2px 8px #4a90d933}.confirm-btn.disabled{cursor:not-allowed;box-shadow:none;background:#e0e0e0}.bg-editor{background:linear-gradient(#fdfbff 0%,#f8f6ff 100%);max-height:88vh;padding:28px 24px 36px;overflow-y:auto}.bg-editor .modal-header{margin-bottom:24px}.bg-editor .modal-title{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:18px}.bg-preview{border:3px solid #fffc;border-radius:20px;width:100%;height:140px;margin-bottom:24px;position:relative;overflow:hidden;box-shadow:0 8px 32px #667eea26}.bg-preview-gradient{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);position:absolute;inset:0}.bg-preview-image{background-repeat:no-repeat;transition:all .2s;position:absolute;inset:0}.bg-preview-overlay{background:linear-gradient(135deg,#1e1e3c73 0%,#3c1e5059 100%);position:absolute;inset:0}.bg-preview-text{color:#ffffffe6;letter-spacing:2px;text-shadow:0 1px 4px #0003;z-index:2;justify-content:center;align-items:center;font-size:14px;font-weight:500;display:flex;position:absolute;inset:0}.bg-actions{gap:12px;margin-bottom:24px;display:flex}.bg-upload-btn,.bg-reset-btn{border-radius:14px;flex:1;justify-content:center;align-items:center;gap:8px;padding:14px 12px;font-size:14px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.bg-upload-btn{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 16px #667eea4d}.bg-upload-btn:active{transform:scale(.95);box-shadow:0 2px 8px #667eea33}.bg-reset-btn{color:var(--text-secondary);background:#fff;border:1.5px solid #eee;box-shadow:0 2px 8px #00000008}.bg-reset-btn:active{background:#f8f8f8;transform:scale(.95)}.bg-controls{background:#fff;border:1px solid #667eea14;border-radius:18px;flex-direction:column;gap:20px;margin-bottom:8px;padding:20px;display:flex;box-shadow:0 2px 12px #0000000a}.control-group{flex-direction:column;gap:10px;display:flex}.control-label{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:13px;font-weight:500;display:flex}.control-value{color:#667eea;background:linear-gradient(135deg,#f0edff,#ede8ff);border-radius:8px;padding:3px 10px;font-size:12px;font-weight:700}.slider{appearance:none;background:linear-gradient(90deg,#e8e4f8,#ddd8f0);border-radius:5px;outline:none;width:100%;height:5px;transition:background .2s}.slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:24px;height:24px;transition:all .2s;box-shadow:0 2px 10px #667eea4d,inset 0 0 0 3px #667eea}.slider::-webkit-slider-thumb:active{transform:scale(1.15);box-shadow:0 3px 14px #667eea66,inset 0 0 0 3px #764ba2}.slider::-moz-range-thumb{cursor:pointer;background:#fff;border:3px solid #667eea;border-radius:50%;width:24px;height:24px;box-shadow:0 2px 10px #667eea4d}.bg-editor .confirm-btn{letter-spacing:1px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;margin-top:24px;box-shadow:0 6px 20px #667eea4d}.bg-editor .confirm-btn:active{transform:scale(.97);box-shadow:0 3px 12px #667eea40}*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#4a90d9;--primary-light:#e8f2fc;--danger:#e74c3c;--danger-light:#fdedec;--warning:#f39c12;--warning-light:#fef5e7;--success:#27ae60;--success-light:#eafaf1;--text-primary:#1a1a2e;--text-secondary:#666;--text-muted:#bdbdbd;--bg-main:#f5f7fa;--bg-card:#fff;--border:#eee;--shadow:0 2px 8px #0000000f}html,body{background-color:var(--bg-main);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;overflow-x:hidden}#root{max-width:480px;min-height:100vh;margin:0 auto;position:relative}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,textarea{border:none;outline:none;font-family:inherit}
