:root{--font: "Plus Jakarta Sans", sans-serif;--bg: #f0f4ff;--surface: #ffffff;--surface2: #f8faff;--border: #e2e8f5;--text: #1a1f36;--text-muted: #64748b;--accent: #4f6ef7;--accent-hover: #3a56e8;--accent-light: #eef1fe;--green: #10b981;--green-light: #d1fae5;--amber: #f59e0b;--amber-light: #fef3c7;--red: #ef4444;--red-light: #fee2e2;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(79,110,247,.08);--shadow-sm: 0 1px 3px rgba(0,0,0,.05);--transition: .2s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;transition:background var(--transition),color var(--transition)}.app-wrapper.dark{--bg: #0d1117;--surface: #161b27;--surface2: #1c2336;--border: #2a3352;--text: #e2e8f0;--text-muted: #7c8db5;--accent: #6b86fa;--accent-hover: #8096fb;--accent-light: #1e2a4a;--green-light: #0d2e22;--amber-light: #2d2210;--red-light: #2d1515;--shadow: 0 2px 8px rgba(0,0,0,.3);background:var(--bg);color:var(--text);min-height:100vh}.toast-box{position:fixed;bottom:-80px;left:50%;transform:translate(-50%);background:#1a1f36;color:#fff;padding:12px 20px;border-radius:50px;display:flex;align-items:center;gap:8px;font-size:14px;font-family:var(--font);font-weight:500;white-space:nowrap;z-index:9999;transition:bottom .35s cubic-bezier(.34,1.56,.64,1);box-shadow:0 8px 32px #00000040}.toast-box.visible{bottom:32px}.toast-box i{color:#10b981;font-size:15px}.toast-box.error i{color:#ef4444}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#0d1117,#161b27,#1c2336);position:relative;overflow:hidden}.login-bg-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.3;pointer-events:none}.orb1{width:400px;height:400px;background:#4f6ef7;top:-100px;left:-100px}.orb2{width:300px;height:300px;background:#10b981;bottom:-80px;right:-80px}.login-card{background:#161b27e6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);padding:40px;border-radius:20px;width:360px;text-align:center;position:relative;z-index:1;animation:fadeUp .5s ease}.login-logo{width:64px;height:64px;background:linear-gradient(135deg,#4f6ef7,#6b86fa);border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:24px;color:#fff}.login-card h2{color:#fff;font-size:22px;font-weight:700;margin-bottom:6px}.login-sub{color:#7c8db5;font-size:14px;margin-bottom:28px}.field-group{text-align:left;margin-bottom:16px}.field-group label{display:block;color:#94a3b8;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.field-group label i{margin-right:6px;color:#4f6ef7}.form-control{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:#fff;font-family:var(--font);font-size:14px;transition:border-color var(--transition),box-shadow var(--transition);outline:none}.form-control::placeholder{color:#4a5568}.form-control:focus{border-color:#4f6ef7;box-shadow:0 0 0 3px #4f6ef726}.btn-login{width:100%;padding:13px;background:linear-gradient(135deg,#4f6ef7,#6b86fa);border:none;border-radius:var(--radius-sm);color:#fff;font-family:var(--font);font-size:15px;font-weight:600;cursor:pointer;transition:opacity var(--transition),transform var(--transition);margin-top:8px}.btn-login:hover{opacity:.9;transform:translateY(-1px)}.btn-login:active{transform:translateY(0)}.btn-login i{margin-right:8px}.app-wrapper{min-height:100vh;background:var(--bg);transition:background var(--transition)}.dashboard{max-width:680px;margin:0 auto;padding:32px 20px 60px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.header-left{display:flex;align-items:center;gap:14px}.header-icon{width:48px;height:48px;background:var(--accent);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;flex-shrink:0}.header h1{font-size:22px;font-weight:700;color:var(--text);line-height:1.2}.header-date{font-size:13px;color:var(--text-muted)}.header-actions{display:flex;gap:8px}.icon-btn{width:40px;height:40px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.icon-btn:hover{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.logout-btn:hover{background:var(--red-light);color:var(--red);border-color:var(--red)}.progress-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;color:var(--text-muted);font-weight:500}.progress-pct{color:var(--accent);font-weight:700;font-size:14px}.progress-track{height:8px;background:var(--surface2);border-radius:50px;overflow:hidden;border:1px solid var(--border)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#10b981);border-radius:50px;transition:width .5s cubic-bezier(.4,0,.2,1)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.stat-icon.total{background:var(--accent-light);color:var(--accent)}.stat-icon.done{background:var(--green-light);color:var(--green)}.stat-icon.pending{background:var(--amber-light);color:var(--amber)}.stat-info{display:flex;flex-direction:column}.stat-num{font-size:22px;font-weight:700;color:var(--text);line-height:1.2}.stat-label{font-size:12px;color:var(--text-muted);font-weight:500}.add-section{margin-bottom:16px}.input-box{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px 6px 6px 16px;gap:10px;box-shadow:var(--shadow-sm);transition:border-color var(--transition),box-shadow var(--transition)}.input-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #4f6ef71f}.input-icon{color:var(--text-muted);font-size:13px;flex-shrink:0}.input-box input{flex:1;border:none;outline:none;background:transparent;font-family:var(--font);font-size:15px;color:var(--text)}.input-box input::placeholder{color:var(--text-muted)}.btn-add{padding:9px 18px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;font-family:var(--font);font-size:14px;font-weight:600;cursor:pointer;transition:background var(--transition),transform var(--transition);white-space:nowrap}.btn-add:hover{background:var(--accent-hover);transform:translateY(-1px)}.controls{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.search-box{flex:1;min-width:180px;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;transition:border-color var(--transition)}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #4f6ef71a}.search-box i{color:var(--text-muted);font-size:13px}.search-box input{border:none;outline:none;background:transparent;font-family:var(--font);font-size:14px;color:var(--text);width:100%}.search-box input::placeholder{color:var(--text-muted)}.filters{display:flex;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px}.filters button{padding:6px 12px;border:none;border-radius:6px;background:transparent;font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all var(--transition);display:flex;align-items:center;gap:6px}.filters button:hover{background:var(--surface2);color:var(--text)}.filters button.active{background:var(--accent);color:#fff}.filters button.active .badge{background:#ffffff40;color:#fff}.badge{background:var(--surface2);color:var(--text-muted);border-radius:20px;padding:1px 7px;font-size:11px;font-weight:700}.tasks-container{display:flex;flex-direction:column;gap:0}.task-item{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:8px;cursor:default;transition:all var(--transition);box-shadow:var(--shadow-sm)}.task-item:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}.task-item.completed{opacity:.65;background:var(--surface2)}.drag-handle{color:var(--text-muted);cursor:grab;font-size:13px;opacity:0;transition:opacity var(--transition)}.task-item:hover .drag-handle{opacity:1}.checkbox-wrap{position:relative;cursor:pointer;flex-shrink:0}.checkbox-wrap input{position:absolute;opacity:0;width:0;height:0}.checkmark{display:block;width:20px;height:20px;border:2px solid var(--border);border-radius:6px;transition:all var(--transition);background:var(--surface)}.checkbox-wrap:hover .checkmark{border-color:var(--accent)}.checkbox-wrap input:checked~.checkmark{background:var(--green);border-color:var(--green)}.checkbox-wrap input:checked~.checkmark:after{content:"";display:block;width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg) translate(2px)}.task-content{flex:1;min-width:0}.task-title{font-size:15px;font-weight:500;color:var(--text);transition:color var(--transition);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-title.striked{text-decoration:line-through;color:var(--text-muted)}.edit-input{width:100%;border:none;border-bottom:2px solid var(--accent);outline:none;background:transparent;font-family:var(--font);font-size:15px;font-weight:500;color:var(--text);padding:2px 0}.task-actions{display:flex;gap:6px;flex-shrink:0}.action-btn{width:32px;height:32px;border:none;border-radius:8px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all var(--transition);opacity:0}.task-item:hover .action-btn{opacity:1}.action-btn.edit{background:var(--accent-light);color:var(--accent)}.action-btn.edit:hover{background:var(--accent);color:#fff}.action-btn.delete{background:var(--red-light);color:var(--red)}.action-btn.delete:hover{background:var(--red);color:#fff}.action-btn.save{background:var(--green-light);color:var(--green);opacity:1}.action-btn.save:hover{background:var(--green);color:#fff}.action-btn.cancel{background:var(--surface2);color:var(--text-muted);opacity:1}.action-btn.cancel:hover{background:var(--border);color:var(--text)}.cdk-drag-preview{box-shadow:0 8px 32px #0003!important;border-radius:var(--radius)!important;opacity:.95!important}.cdk-drag-placeholder{opacity:.3;border:2px dashed var(--accent)!important;background:var(--accent-light)!important}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state i{font-size:40px;opacity:.25;margin-bottom:16px;display:block}.empty-state p{font-size:16px;font-weight:600;color:var(--text);margin-bottom:6px}.empty-state span{font-size:14px}.footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:13px;color:var(--text-muted)}.clear-btn{background:none;border:none;font-family:var(--font);font-size:13px;color:var(--red);cursor:pointer;display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;transition:background var(--transition)}.clear-btn:hover{background:var(--red-light)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.dashboard{padding:20px 14px 50px}.stats{grid-template-columns:repeat(3,1fr);gap:8px}.stat-card{flex-direction:column;text-align:center;padding:12px 8px;gap:8px}.stat-icon{width:36px;height:36px;font-size:15px}.controls{flex-direction:column}.filters{justify-content:center}.header h1{font-size:18px}.action-btn,.drag-handle{opacity:1}}
