@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--bg-body: #eaf2ff;--bg-white: rgba(255, 255, 255, .72);--bg-card: rgba(255, 255, 255, .55);--bg-card-solid: #ffffff;--bg-hover: rgba(255, 255, 255, .8);--bg-input: rgba(255, 255, 255, .6);--border-light: rgba(255, 255, 255, .6);--border-glass: rgba(255, 255, 255, .45);--border-input: rgba(180, 210, 255, .5);--text-primary: #0e2a4a;--text-secondary: #3d6089;--text-muted: #7ea3c7;--accent-blue: #1a8cff;--accent-blue-light: #5eb3ff;--accent-green: #2dd4a0;--accent-orange: #ffb340;--accent-red: #ff5a65;--accent-purple: #8b5cf6;--status-planning: #1a8cff;--status-developing: #2dd4a0;--status-paused: #ffb340;--status-completed: #8b5cf6;--status-maintaining: #f472b6;--glass-blur: blur(20px) saturate(180%);--glass-blur-heavy: blur(30px) saturate(200%);--shadow-glass: 0 8px 32px rgba(26, 140, 255, .08), inset 0 1px 0 rgba(255,255,255,.6);--shadow-glass-hover: 0 12px 40px rgba(26, 140, 255, .14), inset 0 1px 0 rgba(255,255,255,.7);--shadow-glow: 0 0 30px rgba(26, 140, 255, .15);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 28px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(135deg,#d6e8ff,#eaf2ff,#f0f4ff 60%,#e8eeff);color:var(--text-primary);min-height:100vh;overflow-x:hidden}.app{min-height:100vh;position:relative}.bg-blobs{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;animation:blobFloat 20s ease-in-out infinite}.blob-1{width:500px;height:500px;background:radial-gradient(circle,#1a8cff66,#5eb3ff1a);top:-10%;left:-5%;animation-delay:0s;animation-duration:22s}.blob-2{width:400px;height:400px;background:radial-gradient(circle,#8b5cf64d,#2dd4a00d);top:50%;right:-8%;animation-delay:-7s;animation-duration:25s}.blob-3{width:350px;height:350px;background:radial-gradient(circle,#2dd4a04d,#1a8cff0d);bottom:-5%;left:30%;animation-delay:-14s;animation-duration:28s}@keyframes blobFloat{0%,to{transform:translate(0) scale(1)}25%{transform:translate(40px,-30px) scale(1.05)}50%{transform:translate(-20px,20px) scale(.95)}75%{transform:translate(30px,40px) scale(1.03)}}.app-header{position:relative;z-index:2;text-align:center;padding:28px 20px 20px}.header-glass{display:inline-block;padding:16px 40px;background:#ffffff73;backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border-radius:var(--radius-xl);border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow-glass),0 0 60px #1a8cff0f;animation:headerIn .8s cubic-bezier(.16,1,.3,1) both}.app-title{font-size:26px;font-weight:700;background:linear-gradient(135deg,#1a8cff,#5eb3ff,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px}.title-icon{display:inline-block;animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.app-subtitle{font-size:13px;color:var(--text-muted);margin-top:4px;letter-spacing:2px}@keyframes headerIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.main-content{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:24px 20px 80px}.page-enter-active{animation:pageIn .5s cubic-bezier(.22,1,.36,1) both}.page-leave-active{animation:pageOut .3s cubic-bezier(.55,0,1,.45) both}@keyframes pageIn{0%{opacity:0;transform:translateY(24px) scale(.97);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes pageOut{0%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}to{opacity:0;transform:translateY(-12px) scale(.98);filter:blur(2px)}}.glass-card{background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-lg);border:1px solid var(--border-glass);padding:20px 24px;box-shadow:var(--shadow-glass);transition:all .5s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.glass-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);opacity:.6}.glass-card:hover{box-shadow:var(--shadow-glass-hover);transform:translateY(-2px);border-color:#ffffffa6}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-title{font-size:18px;font-weight:600;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .35s cubic-bezier(.22,1,.36,1);font-family:inherit;white-space:nowrap;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--ripple-x, 50%) var(--ripple-y, 50%),rgba(255,255,255,.3) 0%,transparent 60%);opacity:0;transition:opacity .4s}.btn:active:after{opacity:1}.btn-primary{background:linear-gradient(135deg,#1a8cff,#5eb3ff);color:#fff;box-shadow:0 4px 15px #1a8cff4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #1a8cff66}.btn-success{background:linear-gradient(135deg,#2dd4a0,#5eebc0);color:#fff;box-shadow:0 4px 15px #2dd4a04d}.btn-success:hover{transform:translateY(-1px);box-shadow:0 6px 20px #2dd4a066}.btn-ghost{background:#fff6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--accent-blue);border:1px solid rgba(26,140,255,.25)}.btn-ghost:hover{background:#fff9;border-color:#1a8cff66}.btn-warning{background:linear-gradient(135deg,#ffb340,#ffd080);color:#fff;box-shadow:0 4px 15px #ffb3404d}.btn-warning:hover{transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,#ff5a65,#ff8a90);color:#fff;box-shadow:0 4px 15px #ff5a654d}.btn-danger:hover{transform:translateY(-1px)}.btn-info{background:linear-gradient(135deg,#1a8cff,#5eb3ff);color:#fff;box-shadow:0 4px 15px #1a8cff4d}.btn-info:hover{transform:translateY(-1px)}.btn-sm{padding:4px 10px;font-size:11px;border-radius:6px}.form-group{margin-bottom:14px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;background:var(--bg-input);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-input);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:inherit;transition:all .35s cubic-bezier(.22,1,.36,1);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-blue);box-shadow:0 0 0 4px #1a8cff1f,0 4px 12px #1a8cff14;background:#fffc}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:72px}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233d6089' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0e2a4a4d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;animation:overlayIn .35s cubic-bezier(.22,1,.36,1) both}.modal{background:#ffffffbf;backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border-radius:var(--radius-xl);border:1px solid rgba(255,255,255,.5);padding:28px 30px;width:90%;max-width:480px;max-height:90vh;overflow-y:auto;animation:modalIn .45s cubic-bezier(.22,1,.36,1) both;box-shadow:0 20px 60px #1a8cff1f,inset 0 1px #fff9}.modal-title{font-size:18px;font-weight:600;margin-bottom:20px;background:linear-gradient(135deg,#1a8cff,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}@keyframes overlayIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}@keyframes modalIn{0%{opacity:0;transform:translateY(40px) scale(.92);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.status-badge{display:inline-flex;align-items:center;padding:3px 12px;border-radius:14px;font-size:11px;font-weight:500;line-height:1.6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.status-planning{background:#1a8cff1f;color:var(--status-planning);border:1px solid rgba(26,140,255,.15)}.status-developing{background:#2dd4a01f;color:var(--status-developing);border:1px solid rgba(45,212,160,.15)}.status-paused{background:#ffb3401f;color:var(--status-paused);border:1px solid rgba(255,179,64,.15)}.status-completed{background:#8b5cf61f;color:var(--status-completed);border:1px solid rgba(139,92,246,.15)}.status-maintaining{background:#f472b61f;color:var(--status-maintaining);border:1px solid rgba(244,114,182,.15)}.status-todo{background:#7ea3c71f;color:var(--text-muted);border:1px solid rgba(126,163,199,.15)}.status-in_progress{background:#1a8cff1f;color:var(--accent-blue);border:1px solid rgba(26,140,255,.15)}.status-done{background:#2dd4a01f;color:var(--accent-green);border:1px solid rgba(45,212,160,.15)}.status-cancelled{background:#ff5a651f;color:var(--accent-red);border:1px solid rgba(255,90,101,.15)}.progress-bar{width:100%;height:8px;background:#fff6;border-radius:4px;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#1a8cff,#5eb3ff,#2dd4a0);border-radius:4px;transition:width .8s cubic-bezier(.16,1,.3,1);position:relative}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.empty-state{text-align:center;padding:50px 20px;color:var(--text-muted)}.empty-state svg{margin-bottom:12px;opacity:.4}.empty-state p{font-size:14px}.fab-container{position:fixed;bottom:36px;right:36px;z-index:99}.fab-actions-wrapper{position:absolute;bottom:calc(100% + 14px);right:0;display:flex;flex-direction:column;align-items:flex-end;gap:0;pointer-events:none}.fab-actions-wrapper.open{gap:10px;pointer-events:auto}.fab-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:98;background:#0e2a4a26;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.fab-backdrop-enter-active{transition:all .35s cubic-bezier(.22,1,.36,1)}.fab-backdrop-leave-active{transition:all .25s cubic-bezier(.55,0,1,.45)}.fab-backdrop-enter-from,.fab-backdrop-leave-to{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}.fab-action{display:flex;align-items:center;gap:10px;padding:10px 18px;background:#ffffffbf;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.5);border-radius:28px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;color:var(--text-primary);box-shadow:0 4px 20px #1a8cff1f;white-space:nowrap;opacity:0;transform:translateY(10px) scale(.6);transition:opacity .4s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.22,1,.36,1),gap .5s cubic-bezier(.22,1,.36,1),background .3s ease,box-shadow .3s ease;transition-delay:calc((var(--total) - 1 - var(--idx)) * .04s);pointer-events:none}.fab-actions-wrapper.open .fab-action{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;transition-delay:calc((var(--total) - 1 - var(--idx)) * .06s)}.fab-action:hover{background:#ffffffe6;transform:translate(-6px) scale(1.04);box-shadow:0 8px 28px #1a8cff38}.fab-action-icon{font-size:16px;line-height:1;display:inline-flex;transition:transform .3s cubic-bezier(.22,1,.36,1)}.fab-action:hover .fab-action-icon{transform:scale(1.2)}.fab-action-label{color:var(--text-secondary)}.fab-btn{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#1a8cff,#5eb3ff);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px #1a8cff66;transition:all .5s cubic-bezier(.22,1,.36,1);position:relative}.fab-btn:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background:linear-gradient(135deg,#1a8cff66,#8b5cf666);z-index:-1;animation:fabPulse 2s ease-in-out infinite;transition:all .5s cubic-bezier(.22,1,.36,1)}@keyframes fabPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.fab-btn:hover{transform:scale(1.08);box-shadow:0 8px 30px #1a8cff80}.fab-icon{transition:transform .5s cubic-bezier(.22,1,.36,1)}.fab-btn.open{background:linear-gradient(135deg,#ff5a65,#ff8a90);box-shadow:0 6px 24px #ff5a6566}.fab-btn.open:hover{transform:scale(1.08)}.fab-btn.open .fab-icon{transform:rotate(135deg)}.fab-btn.open:before{background:linear-gradient(135deg,#ff5a6566,#ffb34066);animation:none;opacity:.6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.card-enter{animation:cardEnter .6s cubic-bezier(.22,1,.36,1) both}@keyframes cardEnter{0%{opacity:0;transform:translateY(24px) scale(.95);filter:blur(3px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.projects-page[data-v-ae290530]{position:relative}.section[data-v-ae290530]{margin-bottom:28px}.section-title[data-v-ae290530]{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:16px;position:relative;padding-left:14px}.section-title[data-v-ae290530]:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:2px;background:linear-gradient(180deg,#1a8cff,#5eb3ff)}.project-grid[data-v-ae290530]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.project-card[data-v-ae290530]{display:flex;flex-direction:column;gap:10px;padding:22px;cursor:default}.project-card[data-v-ae290530]:after{content:"";position:absolute;bottom:0;left:20px;right:20px;height:3px;border-radius:2px;background:linear-gradient(90deg,#1a8cff,#2dd4a0);opacity:0;transition:opacity .3s ease}.project-card[data-v-ae290530]:hover:after{opacity:1}.card-header-row[data-v-ae290530]{display:flex;justify-content:space-between;align-items:center;gap:8px}.proj-name[data-v-ae290530]{font-size:16px;font-weight:600;color:var(--text-primary)}.proj-desc[data-v-ae290530]{font-size:13px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.date-range[data-v-ae290530]{font-size:11px;color:var(--text-muted)}.progress-section[data-v-ae290530]{display:flex;flex-direction:column;gap:4px}.progress-label[data-v-ae290530]{font-size:12px;color:var(--text-secondary)}.progress-label strong[data-v-ae290530]{color:var(--accent-blue)}.task-stats[data-v-ae290530]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-secondary)}.task-stat-bar[data-v-ae290530]{height:6px;background:#fff6;border-radius:3px;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.task-stat-fill[data-v-ae290530]{height:100%;background:linear-gradient(90deg,#2dd4a0,#5eebc0);border-radius:3px;transition:width .5s cubic-bezier(.16,1,.3,1)}.task-stat-text[data-v-ae290530]{font-size:11px;color:var(--text-muted)}.card-actions[data-v-ae290530]{margin-top:auto;text-align:right}.stat-cards-grid[data-v-ae290530]{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card-item[data-v-ae290530]{padding:22px 18px;text-align:center;transition:all .4s cubic-bezier(.16,1,.3,1)}.stat-card-item[data-v-ae290530]:hover{transform:translateY(-4px) scale(1.02)}.stat-num[data-v-ae290530]{font-size:32px;font-weight:700;line-height:1.2}.stat-label[data-v-ae290530]{font-size:13px;color:var(--text-muted);margin-top:4px}.charts-section[data-v-ae290530]{margin-top:28px}.charts-row[data-v-ae290530]{display:grid;grid-template-columns:1fr 1fr;gap:18px}.chart-box[data-v-ae290530]{padding:22px}.chart-title[data-v-ae290530]{font-size:15px;font-weight:600;color:var(--accent-blue);margin-bottom:14px;text-align:center}.chart-wrap[data-v-ae290530]{height:220px;position:relative}.manage-modal[data-v-ae290530]{max-width:700px}.manage-header[data-v-ae290530]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.close-btn[data-v-ae290530]{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-muted);line-height:1;transition:all .2s}.close-btn[data-v-ae290530]:hover{color:var(--text-primary);transform:rotate(90deg)}.manage-table[data-v-ae290530]{width:100%;border-collapse:collapse}.manage-table th[data-v-ae290530]{background:#1a8cff0f;padding:10px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);text-align:left;border-radius:4px 4px 0 0}.manage-table td[data-v-ae290530]{padding:12px;font-size:13px;border-bottom:1px solid rgba(255,255,255,.3);vertical-align:middle}.manage-table tr:last-child td[data-v-ae290530]{border-bottom:none}.manage-table tr[data-v-ae290530]{transition:background .2s}.manage-table tr[data-v-ae290530]:hover{background:#1a8cff08}.action-btns[data-v-ae290530]{display:flex;gap:4px;flex-wrap:wrap}.form-range[data-v-ae290530]{width:100%;margin-top:6px;accent-color:var(--accent-blue)}.loading[data-v-ae290530]{display:flex;justify-content:center;padding:50px}.spinner[data-v-ae290530]{width:32px;height:32px;border:3px solid rgba(26,140,255,.15);border-top-color:var(--accent-blue);border-radius:50%;animation:spin-ae290530 .7s linear infinite}@keyframes spin-ae290530{to{transform:rotate(360deg)}}.card-list-enter-active[data-v-ae290530]{transition:all .5s cubic-bezier(.22,1,.36,1)}.card-list-leave-active[data-v-ae290530]{transition:all .35s cubic-bezier(.55,0,1,.45)}.card-list-enter-from[data-v-ae290530]{opacity:0;transform:translateY(20px) scale(.95)}.card-list-leave-to[data-v-ae290530]{opacity:0;transform:scale(.95)}.card-list-move[data-v-ae290530]{transition:transform .5s cubic-bezier(.22,1,.36,1)}.stat-list-enter-active[data-v-ae290530]{transition:all .5s cubic-bezier(.22,1,.36,1)}.stat-list-leave-active[data-v-ae290530]{transition:all .3s cubic-bezier(.55,0,1,.45)}.stat-list-enter-from[data-v-ae290530]{opacity:0;transform:translateY(16px) scale(.9)}.stat-list-leave-to[data-v-ae290530]{opacity:0;transform:scale(.9)}@media (max-width: 768px){.stat-cards-grid[data-v-ae290530]{grid-template-columns:repeat(2,1fr)}.charts-row[data-v-ae290530]{grid-template-columns:1fr}.manage-modal[data-v-ae290530]{max-width:95vw;overflow-x:auto}}.detail-page[data-v-7ff3a4d6]{position:relative}.detail-header[data-v-7ff3a4d6]{margin-bottom:16px}.back-btn[data-v-7ff3a4d6]{padding:6px 14px;font-size:13px}.info-card[data-v-7ff3a4d6]{padding:24px;margin-bottom:20px}.info-top[data-v-7ff3a4d6]{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(26,140,255,.08)}.info-left[data-v-7ff3a4d6]{flex:1}.project-name[data-v-7ff3a4d6]{font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:6px}.project-desc[data-v-7ff3a4d6]{font-size:14px;color:var(--text-secondary);line-height:1.6}.info-right[data-v-7ff3a4d6]{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.info-grid[data-v-7ff3a4d6]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-item[data-v-7ff3a4d6]{display:flex;flex-direction:column;gap:6px}.info-label[data-v-7ff3a4d6]{font-size:12px;color:var(--text-muted);font-weight:500}.info-value[data-v-7ff3a4d6]{font-size:14px;color:var(--text-primary)}.info-link[data-v-7ff3a4d6]{font-size:13px;color:var(--accent-blue);text-decoration:none;word-break:break-all}.info-link[data-v-7ff3a4d6]:hover{text-decoration:underline}.progress-wrap[data-v-7ff3a4d6]{display:flex;align-items:center;gap:10px}.progress-pct[data-v-7ff3a4d6]{font-size:14px;font-weight:600;color:var(--accent-blue);min-width:40px}.tech-tags[data-v-7ff3a4d6]{display:flex;flex-wrap:wrap;gap:6px}.tech-tag[data-v-7ff3a4d6]{padding:3px 12px;background:#1a8cff14;border:1px solid rgba(26,140,255,.12);border-radius:14px;font-size:12px;color:var(--accent-blue)}.tabs[data-v-7ff3a4d6]{display:flex;gap:4px;margin-bottom:20px}.tab-btn[data-v-7ff3a4d6]{padding:10px 24px;background:#ffffff59;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(26,140,255,.1);border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .4s cubic-bezier(.22,1,.36,1);font-family:inherit}.tab-btn[data-v-7ff3a4d6]:hover{background:#ffffff80;color:var(--text-primary)}.tab-btn.active[data-v-7ff3a4d6]{background:#fff9;color:var(--accent-blue);border-bottom-color:transparent;box-shadow:0 -2px 8px #1a8cff14}.tab-content[data-v-7ff3a4d6]{background:#fff6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(26,140,255,.1);border-radius:0 var(--radius-md) var(--radius-md) var(--radius-md);padding:20px}.tab-header[data-v-7ff3a4d6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.tab-title[data-v-7ff3a4d6]{font-size:16px;font-weight:600;color:var(--text-primary)}.task-list[data-v-7ff3a4d6],.log-list[data-v-7ff3a4d6]{display:flex;flex-direction:column;gap:10px}.task-card[data-v-7ff3a4d6]{padding:14px 18px}.task-top[data-v-7ff3a4d6]{display:flex;justify-content:space-between;align-items:center;gap:12px}.task-left[data-v-7ff3a4d6]{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.task-check[data-v-7ff3a4d6]{width:20px;height:20px;border-radius:50%;border:2px solid rgba(26,140,255,.3);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;color:#fff}.task-check[data-v-7ff3a4d6]:hover{border-color:var(--accent-blue)}.task-check.checked[data-v-7ff3a4d6]{background:var(--accent-blue);border-color:var(--accent-blue)}.task-title[data-v-7ff3a4d6]{font-size:14px;font-weight:500}.task-title.done[data-v-7ff3a4d6]{text-decoration:line-through;color:var(--text-muted)}.task-right[data-v-7ff3a4d6]{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.task-btns[data-v-7ff3a4d6]{display:flex;gap:4px}.task-desc[data-v-7ff3a4d6]{font-size:12px;color:var(--text-muted);margin-top:6px;line-height:1.4}.task-meta[data-v-7ff3a4d6]{margin-top:6px}.meta-due[data-v-7ff3a4d6]{font-size:11px;color:var(--text-muted)}.meta-due.overdue[data-v-7ff3a4d6]{color:var(--accent-red)}.priority-tag[data-v-7ff3a4d6]{padding:2px 8px;border-radius:10px;font-size:10px;font-weight:500}.priority-tag.p-low[data-v-7ff3a4d6]{background:#7ea3c71a;color:#7ea3c7}.priority-tag.p-medium[data-v-7ff3a4d6]{background:#1a8cff1a;color:#1a8cff}.priority-tag.p-high[data-v-7ff3a4d6]{background:#ffb3401a;color:#ffb340}.priority-tag.p-urgent[data-v-7ff3a4d6]{background:#ff5a651a;color:#ff5a65}.log-card[data-v-7ff3a4d6]{padding:14px 18px}.log-top[data-v-7ff3a4d6]{display:flex;align-items:center;gap:10px;margin-bottom:8px}.log-mood[data-v-7ff3a4d6]{font-size:18px}.log-date[data-v-7ff3a4d6]{font-size:12px;color:var(--text-muted)}.log-btns[data-v-7ff3a4d6]{margin-left:auto;display:flex;gap:4px}.log-content[data-v-7ff3a4d6]{font-size:13px;color:var(--text-secondary);line-height:1.7;white-space:pre-wrap}.form-row[data-v-7ff3a4d6]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-range[data-v-7ff3a4d6]{width:100%;margin-top:6px;accent-color:var(--accent-blue)}.mood-btns[data-v-7ff3a4d6]{display:flex;gap:6px;margin-top:6px}.mood-btn[data-v-7ff3a4d6]{width:36px;height:34px;border:1px solid var(--border-input);border-radius:var(--radius-sm);background:#fff6;font-size:17px;cursor:pointer;transition:all .3s}.mood-btn[data-v-7ff3a4d6]:hover{background:#1a8cff14;transform:scale(1.1)}.mood-btn.active[data-v-7ff3a4d6]{background:#1a8cff1f;border-color:var(--accent-blue)}.loading[data-v-7ff3a4d6]{display:flex;justify-content:center;padding:50px}.spinner[data-v-7ff3a4d6]{width:32px;height:32px;border:3px solid rgba(26,140,255,.15);border-top-color:var(--accent-blue);border-radius:50%;animation:spin-7ff3a4d6 .7s linear infinite}@keyframes spin-7ff3a4d6{to{transform:rotate(360deg)}}.tab-fade-enter-active[data-v-7ff3a4d6]{transition:all .4s cubic-bezier(.22,1,.36,1)}.tab-fade-leave-active[data-v-7ff3a4d6]{transition:all .25s cubic-bezier(.55,0,1,.45)}.tab-fade-enter-from[data-v-7ff3a4d6]{opacity:0;transform:translate(16px)}.tab-fade-leave-to[data-v-7ff3a4d6]{opacity:0;transform:translate(-16px)}.detail-list-enter-active[data-v-7ff3a4d6]{transition:all .5s cubic-bezier(.22,1,.36,1)}.detail-list-leave-active[data-v-7ff3a4d6]{transition:all .3s cubic-bezier(.55,0,1,.45)}.detail-list-enter-from[data-v-7ff3a4d6]{opacity:0;transform:translateY(12px) scale(.96)}.detail-list-leave-to[data-v-7ff3a4d6]{opacity:0;transform:scale(.96)}.detail-list-move[data-v-7ff3a4d6]{transition:transform .5s cubic-bezier(.22,1,.36,1)}@media (max-width: 768px){.info-top[data-v-7ff3a4d6]{flex-direction:column}.info-grid[data-v-7ff3a4d6]{grid-template-columns:1fr}.task-top[data-v-7ff3a4d6]{flex-direction:column;align-items:flex-start}.task-right[data-v-7ff3a4d6]{width:100%}}.tasks-page[data-v-1b4f85a7]{position:relative}.project-groups[data-v-1b4f85a7]{display:flex;flex-direction:column;gap:18px}.project-group-card[data-v-1b4f85a7]{padding:22px}.group-header[data-v-1b4f85a7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:2px solid rgba(26,140,255,.1)}.group-name[data-v-1b4f85a7]{font-size:16px;font-weight:600;color:var(--accent-blue);position:relative;padding-left:12px}.group-name[data-v-1b4f85a7]:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:2px;background:linear-gradient(180deg,#1a8cff,#2dd4a0)}.task-list-in-group[data-v-1b4f85a7]{display:flex;flex-direction:column;gap:8px}.task-item[data-v-1b4f85a7]{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;background:#ffffff59;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-sm);border-left:3px solid transparent;transition:all .4s cubic-bezier(.22,1,.36,1)}.task-item.has-left-border[data-v-1b4f85a7]{border-left-color:#1a8cff66}.task-item[data-v-1b4f85a7]:hover{background:#ffffff8c;transform:translate(6px);box-shadow:0 4px 16px #1a8cff14}.task-main[data-v-1b4f85a7]{flex:1;min-width:0}.task-title-text[data-v-1b4f85a7]{font-size:14px;font-weight:600;color:var(--text-primary);display:block;margin-bottom:3px}.task-desc-text[data-v-1b4f85a7]{font-size:12px;color:var(--text-muted);line-height:1.4}.task-right[data-v-1b4f85a7]{display:flex;align-items:center;gap:10px;flex-shrink:0}.task-btns[data-v-1b4f85a7]{display:flex;gap:4px}.expand-more[data-v-1b4f85a7]{text-align:center;padding:8px;background:#1a8cff0f;border-radius:var(--radius-sm);color:var(--accent-blue);font-size:13px;cursor:pointer;margin-top:8px;transition:all .3s cubic-bezier(.16,1,.3,1)}.expand-more[data-v-1b4f85a7]:hover{background:#1a8cff1f;transform:translateY(-1px)}.form-row[data-v-1b4f85a7]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.loading[data-v-1b4f85a7]{display:flex;justify-content:center;padding:50px}.spinner[data-v-1b4f85a7]{width:32px;height:32px;border:3px solid rgba(26,140,255,.15);border-top-color:var(--accent-blue);border-radius:50%;animation:spin-1b4f85a7 .7s linear infinite}@keyframes spin-1b4f85a7{to{transform:rotate(360deg)}}.group-list-enter-active[data-v-1b4f85a7]{transition:all .5s cubic-bezier(.22,1,.36,1)}.group-list-leave-active[data-v-1b4f85a7]{transition:all .35s cubic-bezier(.55,0,1,.45)}.group-list-enter-from[data-v-1b4f85a7]{opacity:0;transform:translateY(20px) scale(.96)}.group-list-leave-to[data-v-1b4f85a7]{opacity:0;transform:translateY(-10px) scale(.96)}.group-list-move[data-v-1b4f85a7]{transition:transform .5s cubic-bezier(.22,1,.36,1)}.task-item-enter-active[data-v-1b4f85a7]{transition:all .45s cubic-bezier(.22,1,.36,1)}.task-item-leave-active[data-v-1b4f85a7]{transition:all .3s cubic-bezier(.55,0,1,.45)}.task-item-enter-from[data-v-1b4f85a7]{opacity:0;transform:translate(-16px)}.task-item-leave-to[data-v-1b4f85a7]{opacity:0;transform:translate(16px)}.task-item-move[data-v-1b4f85a7]{transition:transform .45s cubic-bezier(.22,1,.36,1)}@media (max-width: 768px){.task-item[data-v-1b4f85a7]{flex-direction:column;align-items:flex-start}.task-right[data-v-1b4f85a7]{width:100%;justify-content:flex-end}}.logs-page[data-v-6380b239]{position:relative}.log-group-card[data-v-6380b239]{padding:20px 22px;margin-bottom:14px}.log-date-header[data-v-6380b239]{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:14px}.date-dot[data-v-6380b239]{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#1a8cff,#5eb3ff);box-shadow:0 0 10px #1a8cff4d;animation:dotPulse-6380b239 2s ease-in-out infinite}@keyframes dotPulse-6380b239{0%,to{box-shadow:0 0 6px #1a8cff4d}50%{box-shadow:0 0 14px #1a8cff80}}.log-items[data-v-6380b239]{display:flex;flex-direction:column;gap:10px}.log-item[data-v-6380b239]{padding:14px 16px;background:#ffffff59;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-sm);border-left:3px solid rgba(26,140,255,.3);transition:all .4s cubic-bezier(.22,1,.36,1)}.log-item[data-v-6380b239]:hover{background:#ffffff8c;border-left-color:var(--accent-blue);transform:translate(6px);box-shadow:0 4px 16px #1a8cff14}.log-item-top[data-v-6380b239]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.proj-tag[data-v-6380b239]{font-size:11px;color:var(--accent-blue);padding:2px 10px;background:#1a8cff14;border:1px solid rgba(26,140,255,.12);border-radius:10px;font-weight:500}.mood-emoji[data-v-6380b239]{font-size:18px}.log-content-text[data-v-6380b239]{font-size:13px;color:var(--text-secondary);line-height:1.7;white-space:pre-wrap;margin-bottom:10px}.log-bottom[data-v-6380b239]{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid rgba(255,255,255,.3)}.log-time-text[data-v-6380b239]{font-size:11px;color:var(--text-muted)}.log-actions-row[data-v-6380b239]{display:flex;gap:4px}.form-row[data-v-6380b239]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mood-btns[data-v-6380b239]{display:flex;gap:6px;margin-top:6px}.mood-btn[data-v-6380b239]{width:36px;height:34px;border:1px solid var(--border-input);border-radius:var(--radius-sm);background:#fff6;font-size:17px;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.mood-btn[data-v-6380b239]:hover{background:#1a8cff14;transform:scale(1.1)}.mood-btn.active[data-v-6380b239]{background:#1a8cff1f;border-color:var(--accent-blue);box-shadow:0 0 8px #1a8cff26}.loading[data-v-6380b239]{display:flex;justify-content:center;padding:50px}.spinner[data-v-6380b239]{width:32px;height:32px;border:3px solid rgba(26,140,255,.15);border-top-color:var(--accent-blue);border-radius:50%;animation:spin-6380b239 .7s linear infinite}@keyframes spin-6380b239{to{transform:rotate(360deg)}}.log-group-enter-active[data-v-6380b239]{transition:all .5s cubic-bezier(.22,1,.36,1)}.log-group-leave-active[data-v-6380b239]{transition:all .35s cubic-bezier(.55,0,1,.45)}.log-group-enter-from[data-v-6380b239]{opacity:0;transform:translateY(20px) scale(.96)}.log-group-leave-to[data-v-6380b239]{opacity:0;transform:translateY(-10px) scale(.96)}.log-group-move[data-v-6380b239]{transition:transform .5s cubic-bezier(.22,1,.36,1)}.log-item-enter-active[data-v-6380b239]{transition:all .45s cubic-bezier(.22,1,.36,1)}.log-item-leave-active[data-v-6380b239]{transition:all .3s cubic-bezier(.55,0,1,.45)}.log-item-enter-from[data-v-6380b239]{opacity:0;transform:translate(-16px)}.log-item-leave-to[data-v-6380b239]{opacity:0;transform:translate(16px)}.log-item-move[data-v-6380b239]{transition:transform .45s cubic-bezier(.22,1,.36,1)}.stats-page[data-v-36c8ee4e]{position:relative}.stat-cards-grid[data-v-36c8ee4e]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:24px}.stat-card[data-v-36c8ee4e]{display:flex;align-items:center;gap:14px;padding:18px 20px;transition:all .4s cubic-bezier(.16,1,.3,1)}.stat-card[data-v-36c8ee4e]:hover{transform:translateY(-4px) scale(1.02)}.stat-icon-wrap[data-v-36c8ee4e]{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.big-num[data-v-36c8ee4e]{font-size:28px;font-weight:700;line-height:1.2}.sub-label[data-v-36c8ee4e]{font-size:12px;color:var(--text-muted);margin-top:2px}.charts-row-3[data-v-36c8ee4e]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-bottom:24px}.charts-row-2[data-v-36c8ee4e]{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}.chart-box[data-v-36c8ee4e]{padding:22px}.chart-title[data-v-36c8ee4e]{font-size:15px;font-weight:600;color:var(--accent-blue);text-align:center;margin-bottom:14px;position:relative}.chart-title[data-v-36c8ee4e]:after{content:"";display:block;width:40px;height:3px;border-radius:2px;background:linear-gradient(90deg,#1a8cff,#2dd4a0);margin:8px auto 0}.chart-wrap[data-v-36c8ee4e]{height:240px;position:relative}.chart-wrap-lg[data-v-36c8ee4e]{height:280px;position:relative}.full-chart[data-v-36c8ee4e]{margin-bottom:24px}.rate-chart-wrap[data-v-36c8ee4e]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding-top:10px}.rate-ring[data-v-36c8ee4e]{position:relative;width:110px;height:110px}.rate-center[data-v-36c8ee4e]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.rate-big[data-v-36c8ee4e]{display:block;font-size:22px;font-weight:700;color:var(--text-primary)}.rate-small[data-v-36c8ee4e]{display:block;font-size:10px;color:var(--text-muted)}.rate-legend[data-v-36c8ee4e]{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.rate-legend-item[data-v-36c8ee4e]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.legend-dot[data-v-36c8ee4e]{width:8px;height:8px;border-radius:50%}.progress-section[data-v-36c8ee4e]{padding:22px 24px;margin-bottom:20px}.section-subtitle[data-v-36c8ee4e]{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:16px;position:relative;padding-left:14px}.section-subtitle[data-v-36c8ee4e]:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:2px;background:linear-gradient(180deg,#1a8cff,#5eb3ff)}.progress-list[data-v-36c8ee4e]{display:flex;flex-direction:column;gap:14px}.progress-row[data-v-36c8ee4e]{display:flex;align-items:center;gap:12px;padding:6px 0;transition:all .3s ease}.progress-row[data-v-36c8ee4e]:hover{transform:translate(4px)}.prog-name[data-v-36c8ee4e]{font-size:14px;font-weight:500;min-width:100px}.prog-bar-wrap[data-v-36c8ee4e]{flex:1;display:flex;align-items:center;gap:10px}.prog-bar-track[data-v-36c8ee4e]{flex:1;height:10px;background:#fff6;border-radius:5px;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.prog-bar-fill[data-v-36c8ee4e]{height:100%;background:linear-gradient(90deg,#1a8cff,#5eb3ff,#2dd4a0);border-radius:5px;transition:width .8s cubic-bezier(.16,1,.3,1);position:relative}.prog-bar-fill[data-v-36c8ee4e]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer-36c8ee4e 2s ease-in-out infinite}@keyframes shimmer-36c8ee4e{0%{transform:translate(-100%)}to{transform:translate(100%)}}.prog-pct[data-v-36c8ee4e]{font-size:13px;font-weight:600;color:var(--accent-blue);min-width:38px;text-align:right}.loading[data-v-36c8ee4e]{display:flex;justify-content:center;padding:50px}.spinner[data-v-36c8ee4e]{width:32px;height:32px;border:3px solid rgba(26,140,255,.15);border-top-color:var(--accent-blue);border-radius:50%;animation:spin-36c8ee4e .7s linear infinite}@keyframes spin-36c8ee4e{to{transform:rotate(360deg)}}.stat-pop-enter-active[data-v-36c8ee4e]{transition:all .5s cubic-bezier(.22,1,.36,1)}.stat-pop-leave-active[data-v-36c8ee4e]{transition:all .3s cubic-bezier(.55,0,1,.45)}.stat-pop-enter-from[data-v-36c8ee4e]{opacity:0;transform:translateY(16px) scale(.9)}.stat-pop-leave-to[data-v-36c8ee4e]{opacity:0;transform:scale(.9)}.chart-box[data-v-36c8ee4e]{animation:chartFadeIn-36c8ee4e .8s cubic-bezier(.22,1,.36,1) both}@keyframes chartFadeIn-36c8ee4e{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.charts-row-3[data-v-36c8ee4e],.charts-row-2[data-v-36c8ee4e]{grid-template-columns:1fr}.stat-cards-grid[data-v-36c8ee4e]{grid-template-columns:repeat(2,1fr)}}
