*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;color:#333;line-height:1.6}.container{max-width:680px;margin:40px auto;padding:0 20px}h1{text-align:center;margin-bottom:30px;color:white;font-size:2.2rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.2)}h1 small{display:inline-block;background:rgba(255,255,255,.2);color:white!important;padding:4px 10px;border-radius:20px;font-size:.45em!important;font-weight:500;margin-left:10px;vertical-align:middle;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-clear{background:#ff6b6b;color:white;border:none;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 2px 8px rgba(255,107,107,.3)}.btn-clear:hover{background:#ee5a5a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,107,107,.4)}.btn-clear:active{transform:translateY(0)}.clear-bar{text-align:center;margin-bottom:20px}.btn-done{background:#4caf50;color:white}.btn-done:hover{background:#43a047}.btn-undo{background:#9e9e9e;color:white}.btn-undo:hover{background:#757575}.stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-bottom:24px}.stat-card{background:rgba(255,255,255,.95);padding:16px 12px;border-radius:16px;text-align:center;box-shadow:0 4px 15px rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stat-number{display:block;font-size:1.8rem;font-weight:700;color:#667eea;line-height:1;margin-bottom:4px}.stat-label{font-size:.85rem;color:#888}.add-form{background:white;padding:24px;border-radius:20px;box-shadow:0 8px 30px rgba(0,0,0,.12);margin-bottom:24px;position:relative;overflow:hidden}.add-form:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2)}.form-row{display:flex;gap:10px;margin-bottom:10px}.input{flex:1 1;padding:12px 16px;border:2px solid #e8e8e8;border-radius:12px;font-size:15px;outline:none;transition:all .2s;background:#fafafa}.input:focus{border-color:#667eea;background:white;box-shadow:0 0 0 3px rgba(102,126,234,.1)}.input::placeholder{color:#aaa}.input-desc{width:100%}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:white;border:none;padding:12px 24px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 4px 15px rgba(102,126,234,.3)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(102,126,234,.4)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-small{background:#f5f5f5;border:none;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;color:#555}.btn-small:hover{background:#e8e8e8;transform:translateY(-1px)}.btn-danger{background:#ff6b6b;color:white}.btn-danger:hover{background:#ee5a5a}.todo-item.overdue{background:#f5f5f5;opacity:.65;border:2px dashed #ddd}.todo-item.overdue .todo-title{text-decoration:line-through;color:#999}.todo-item.overdue .todo-desc{color:#bbb}.todo-item.overdue .checkbox-custom{border-color:#ccc}.todo-item.overdue:hover{opacity:.8;transform:none;box-shadow:0 2px 8px rgba(0,0,0,.04)}.todo-list{display:flex;flex-direction:column;gap:10px}.todo-item{background:white;padding:18px 20px;border-radius:16px;box-shadow:0 2px 8px rgba(0,0,0,.06);display:flex;justify-content:space-between;align-items:center;gap:14px;transition:all .25s ease;border:2px solid transparent}.todo-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.1);border-color:rgba(102,126,234,.15)}.todo-item.completed{background:#f8f9fa;opacity:.75}.todo-item.completed:hover{opacity:.9}.todo-item.completed .todo-title{text-decoration:line-through;color:#adb5bd}.todo-item.completed .todo-desc{color:#ced4da}.todo-item.editing{flex-direction:column;align-items:stretch;background:#f8f9ff;border-color:rgba(102,126,234,.3)}.todo-item.editing .input{margin-bottom:10px}.todo-content{display:flex;align-items:flex-start;gap:14px;flex:1 1;min-width:0}.checkbox-wrapper{position:relative;width:24px;height:24px;flex-shrink:0;margin-top:2px}.checkbox{cursor:pointer;opacity:0;z-index:2}.checkbox,.checkbox-custom{width:24px;height:24px;position:absolute}.checkbox-custom{top:0;left:0;border:2px solid #ddd;border-radius:8px;transition:all .2s;display:flex;align-items:center;justify-content:center}.checkbox:checked~.checkbox-custom{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent}.checkbox-custom:after{content:"✓";color:white;font-size:14px;font-weight:700;opacity:0;transition:opacity .2s}.checkbox:checked~.checkbox-custom:after{opacity:1}.todo-text{display:flex;flex-direction:column;min-width:0;flex:1 1}.todo-title{font-size:15px;font-weight:600;color:#2d3748;word-break:break-word;line-height:1.4}.todo-desc{font-size:13px;color:#a0aec0;margin-top:4px;line-height:1.4}.todo-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search-bar{margin-bottom:16px}.search-form{display:flex;gap:8px;align-items:center}.search-input{flex:1 1;padding:12px 16px;border:2px solid rgba(102,126,234,.3);border-radius:12px;font-size:15px;background:rgba(255,255,255,.95)}.search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.15)}.filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;background:rgba(255,255,255,.15);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-wrap:wrap}.filter-label{font-size:14px;margin-right:4px}.filter-btn,.filter-label{color:white;font-weight:600}.filter-btn{display:inline-block;padding:6px 14px;border-radius:20px;font-size:13px;text-decoration:none;background:rgba(255,255,255,.2);border:2px solid transparent;transition:all .2s;cursor:pointer}.filter-btn:hover{background:rgba(255,255,255,.35);transform:translateY(-1px)}.filter-btn.active{background:white;color:#764ba2;border-color:white}.filter-工作.active{background:#e3f2fd;color:#1976d2;border-color:#1976d2}.filter-学习.active{background:#e8f5e9;color:#388e3c;border-color:#388e3c}.filter-生活.active{background:#fff3e0;color:#f57c00;border-color:#f57c00}.tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}.tag-work{background:#e3f2fd;color:#1976d2}.tag-study{background:#e8f5e9;color:#388e3c}.tag-life{background:#fff3e0;color:#f57c00}.category-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;flex:0 1 auto;min-width:120px}.category-preview{margin-top:10px;display:flex;align-items:center;gap:8px;padding:8px 12px;background:linear-gradient(135deg,#f5f7fa,#e4e8ec);border-radius:10px;font-size:14px;animation:slideIn .3s ease-out}.category-preview-label{color:#666;font-weight:500}.category-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap}.category-工作{background:#e3f2fd;color:#1976d2}.category-学习{background:#e8f5e9;color:#388e3c}.category-生活{background:#fff3e0;color:#f57c00}.tag-priority-urgent{background:#ffebee;color:#d32f2f}.tag-priority-high{background:#fff8e1;color:#f57c00}.priority-preview{margin-top:8px;display:flex;align-items:center;gap:8px;padding:6px 12px;background:linear-gradient(135deg,#fff5f5,#ffe0e0);border-radius:10px;font-size:14px;animation:slideIn .3s ease-out}.priority-preview-label{color:#666;font-weight:500}.priority-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap}.priority-urgent{background:#ffebee;color:#d32f2f}.priority-high{background:#fff8e1;color:#f57c00}.priority-normal{background:#e3f2fd;color:#1976d2}.priority-selector{margin-top:12px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.priority-label{font-size:14px;color:#555;font-weight:500;white-space:nowrap}.priority-buttons{display:flex;gap:8px;flex-wrap:wrap}.priority-btn{padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;border:2px solid #e8e8e8;background:#fafafa;cursor:pointer;transition:all .2s;color:#555}.priority-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.priority-btn.active{border-color:currentColor;background:white;box-shadow:0 2px 8px rgba(0,0,0,.12)}.priority-btn-urgent{color:#d32f2f;border-color:#ffcdd2;background:#ffebee}.priority-btn-urgent.active{background:#ffebee;border-color:#d32f2f;box-shadow:0 0 0 3px rgba(211,47,47,.15)}.priority-btn-high{color:#f57c00;border-color:#ffe0b2;background:#fff8e1}.priority-btn-high.active{background:#fff8e1;border-color:#f57c00;box-shadow:0 0 0 3px rgba(245,124,0,.15)}.priority-btn-normal{color:#1976d2;border-color:#bbdefb;background:#e3f2fd}.priority-btn-normal.active{background:#e3f2fd;border-color:#1976d2;box-shadow:0 0 0 3px rgba(25,118,210,.15)}.priority-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.deadline-selector{margin-top:12px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.deadline-label{font-size:14px;color:#555;font-weight:500;white-space:nowrap}.deadline-input{padding:8px 12px;border:2px solid #e8e8e8;border-radius:10px;font-size:14px;outline:none;transition:all .2s;background:#fafafa;color:#333}.deadline-input:focus{border-color:#667eea;background:white;box-shadow:0 0 0 3px rgba(102,126,234,.1)}.countdown-line{font-size:15px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:8px;padding:6px 12px;border-radius:8px;display:inline-block}.countdown-line.normal{color:#388e3c;background:#e8f5e9}.countdown-line.warning{color:#f57c00;background:#fff3e0;animation:pulse 1.5s ease-in-out infinite}.countdown-line.urgent{color:#d32f2f;background:#ffebee;animation:pulse 1s ease-in-out infinite}.countdown-line.overdue{color:#d32f2f;background:#ffebee;animation:pulse 1.2s ease-in-out infinite}.countdown-line.done{color:#2e7d32;background:#e8f5e9}.deadline-tag{background:#f3e5f5;color:#7b1fa2}.deadline-tag.deadline-overdue{background:#ffebee;color:#d32f2f;animation:pulse 1.5s ease-in-out infinite}.deadline-tag.deadline-soon{background:#fff3e0;color:#f57c00}.deadline-tag.deadline-week{background:#e8f5e9;color:#388e3c}.deadline-status{margin-left:6px;font-weight:700}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.auto-hint{margin-bottom:10px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;background:#f0f4ff;border-radius:8px;font-size:13px}.hint-label{color:#667eea;font-weight:500}.actions{display:flex;gap:8px;flex-shrink:0}.empty{text-align:center;color:white;padding:60px 20px;font-size:1.1rem;opacity:.9}.empty-icon{font-size:3rem;margin-bottom:16px;display:block}.error{color:#ff6b6b;font-size:13px;margin-top:8px;display:flex;align-items:center;gap:6px}@media (max-width:480px){.container{margin:20px auto}h1{font-size:1.6rem}.stats{grid-template-columns:1fr;gap:8px}.stat-card{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.stat-number{font-size:1.4rem}.todo-item{flex-direction:column;align-items:flex-start;padding:14px 16px}.actions,.todo-content{width:100%}.actions{justify-content:flex-end}.form-row{flex-direction:column}.btn-primary{width:100%}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.todo-item{animation:slideIn .3s ease-out}