@import "https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&display=swap";.onboarding[data-v-eb3f1239]{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.ob-bg[data-v-eb3f1239]{pointer-events:none;position:absolute;inset:0}.blob[data-v-eb3f1239]{filter:blur(80px);opacity:.25;border-radius:50%;position:absolute}.blob1[data-v-eb3f1239]{background:var(--accent);width:500px;height:500px;top:-100px;right:-100px}.blob2[data-v-eb3f1239]{background:var(--accent2);width:400px;height:400px;bottom:-100px;left:-80px}.ob-card[data-v-eb3f1239]{z-index:1;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--r-xl);text-align:center;background:#0f0f12cc;width:100%;max-width:440px;padding:48px 40px;position:relative}.ob-icon[data-v-eb3f1239]{color:var(--accent);margin-bottom:20px;font-size:32px}.ob-title[data-v-eb3f1239]{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:12px;font-size:32px;font-weight:800;line-height:1.2}.ob-sub[data-v-eb3f1239]{color:var(--muted);margin-bottom:36px;font-size:15px}.ob-step[data-v-eb3f1239]{text-align:left;flex-direction:column;gap:12px;display:flex}.ob-input[data-v-eb3f1239]{padding:14px 16px;font-size:16px}.ob-btn[data-v-eb3f1239]{justify-content:center;width:100%;margin-top:4px;padding:13px;font-size:15px}.ob-btn-sm[data-v-eb3f1239]{flex:1;justify-content:center}.ob-row[data-v-eb3f1239]{align-items:center;gap:10px;display:flex}.ob-cat-grid[data-v-eb3f1239]{flex-wrap:wrap;gap:8px;display:flex}.cat-chip[data-v-eb3f1239]{background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:7px 13px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.cat-chip.active[data-v-eb3f1239]{border-color:var(--accent);color:var(--text);background:#7c6af726}.ob-dots[data-v-eb3f1239]{justify-content:center;gap:8px;margin-top:28px;display:flex}.ob-dots span[data-v-eb3f1239]{background:var(--border);border-radius:50%;width:8px;height:8px;transition:background .3s}.ob-dots span.active[data-v-eb3f1239]{background:var(--accent)}.slide-enter-active[data-v-eb3f1239],.slide-leave-active[data-v-eb3f1239]{transition:all .25s}.slide-enter-from[data-v-eb3f1239]{opacity:0;transform:translate(20px)}.slide-leave-to[data-v-eb3f1239]{opacity:0;transform:translate(-20px)}.app-shell[data-v-707d4219]{height:100vh;display:flex;overflow:hidden}.sidebar[data-v-707d4219]{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:8px;width:240px;padding:28px 20px;display:flex}.sidebar-logo[data-v-707d4219]{align-items:center;gap:10px;margin-bottom:32px;padding:0 8px;display:flex}.logo-icon[data-v-707d4219]{color:var(--accent);font-size:22px;line-height:1}.logo-text[data-v-707d4219]{font-family:var(--font-display);letter-spacing:-.02em;font-size:18px;font-weight:700}.sidebar-nav[data-v-707d4219]{flex-direction:column;flex:1;gap:4px;display:flex}.nav-item[data-v-707d4219]{border-radius:var(--r-sm);color:var(--muted);align-items:center;gap:12px;padding:11px 12px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.nav-item[data-v-707d4219]:hover{color:var(--text);background:var(--surface2)}.nav-item.router-link-active[data-v-707d4219]{color:var(--text);background:#7c6af71f}.nav-icon[data-v-707d4219]{text-align:center;width:20px;font-size:16px}.sidebar-score[data-v-707d4219]{background:var(--surface2);border-radius:var(--r-md);border:1px solid var(--border);text-align:center;margin-top:8px;padding:20px}.score-label[data-v-707d4219]{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:14px;font-size:11px;font-weight:600}.score-ring-wrap[data-v-707d4219]{justify-content:center;align-items:center;display:inline-flex;position:relative}.score-ring[data-v-707d4219]{width:80px;height:80px;transition:stroke-dashoffset .8s}.score-value[data-v-707d4219]{font-family:var(--font-display);color:var(--text);font-size:22px;font-weight:800;position:absolute}.sidebar-user[data-v-707d4219]{border-radius:var(--r-sm);border:1px solid var(--border);align-items:center;gap:10px;margin-top:8px;padding:12px;display:flex}.user-avatar[data-v-707d4219]{background:var(--accent);width:32px;height:32px;font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.user-name[data-v-707d4219]{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.main-content[data-v-707d4219]{flex:1;padding:40px;overflow-y:auto}@media (width<=768px){.sidebar[data-v-707d4219]{display:none}.main-content[data-v-707d4219]{padding:20px}}.dash-header[data-v-143bd2af]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}.page-title[data-v-143bd2af]{font-family:var(--font-display);letter-spacing:-.02em;font-size:28px;font-weight:800}.page-sub[data-v-143bd2af]{color:var(--muted);margin-top:4px;font-size:14px}.header-actions[data-v-143bd2af]{align-items:center;gap:12px;display:flex}.mood-bar[data-v-143bd2af]{background:var(--surface);border:1px solid var(--border);border-radius:100px;align-items:center;gap:8px;padding:8px 14px;display:flex}.mood-label[data-v-143bd2af]{color:var(--muted);margin-right:4px;font-size:12px}.mood-btn[data-v-143bd2af]{cursor:pointer;opacity:.4;background:0 0;border:none;border-radius:6px;padding:2px;font-size:20px;line-height:1;transition:all .15s}.mood-btn[data-v-143bd2af]:hover{opacity:.8;transform:scale(1.2)}.mood-btn.active[data-v-143bd2af]{opacity:1;transform:scale(1.25)}.stats-row[data-v-143bd2af]{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card[data-v-143bd2af]{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);align-items:center;gap:16px;padding:20px;display:flex}.stat-icon[data-v-143bd2af]{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex}.stat-val[data-v-143bd2af]{font-family:var(--font-display);font-size:24px;font-weight:800;line-height:1}.stat-unit[data-v-143bd2af]{color:var(--muted);font-size:14px;font-weight:400;font-family:var(--font-body)}.stat-lbl[data-v-143bd2af]{color:var(--muted);margin-top:4px;font-size:12px}.main-grid[data-v-143bd2af]{grid-template-rows:auto auto;grid-template-columns:1fr 1fr;gap:20px;display:grid}.chart-card[data-v-143bd2af]{grid-column:1}.habits-today-card[data-v-143bd2af]{grid-column:2}.goals-card[data-v-143bd2af]{grid-column:1}.note-card[data-v-143bd2af]{grid-column:2}.card-title[data-v-143bd2af]{font-family:var(--font-display);margin-bottom:18px;font-size:15px;font-weight:700}.card-head[data-v-143bd2af]{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.card-head .card-title[data-v-143bd2af]{margin-bottom:0}.card-link[data-v-143bd2af]{color:var(--accent);font-size:13px;font-weight:500}.empty-hint[data-v-143bd2af]{color:var(--muted);font-size:14px}.empty-hint a[data-v-143bd2af]{color:var(--accent)}.bar-chart[data-v-143bd2af]{align-items:flex-end;gap:12px;height:120px;display:flex}.bar-col[data-v-143bd2af]{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.bar-track[data-v-143bd2af]{background:var(--surface2);border-radius:6px;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.bar-fill[data-v-143bd2af]{border-radius:6px;width:100%;min-height:3px;transition:height .6s}.bar-label[data-v-143bd2af]{color:var(--muted);margin-top:8px;font-size:11px}.bar-pct[data-v-143bd2af]{color:var(--text);font-size:11px;font-weight:600}.habit-list[data-v-143bd2af]{flex-direction:column;gap:8px;display:flex}.habit-row[data-v-143bd2af]{background:var(--surface2);border-radius:var(--r-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:12px;padding:10px 12px;transition:all .15s;display:flex}.habit-row[data-v-143bd2af]:hover{border-color:var(--border)}.habit-row.done[data-v-143bd2af]{background:#22c55e0f;border-color:#22c55e33}.habit-check[data-v-143bd2af]{border:2px solid var(--border);width:20px;height:20px;color:var(--green);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;transition:all .15s;display:flex}.habit-row.done .habit-check[data-v-143bd2af]{background:var(--green);border-color:var(--green);color:#fff}.habit-icon[data-v-143bd2af]{font-size:16px}.habit-name[data-v-143bd2af]{flex:1;font-size:14px;font-weight:500}.habit-row.done .habit-name[data-v-143bd2af]{opacity:.5;text-decoration:line-through}.habit-streak[data-v-143bd2af]{color:var(--accent2);font-size:12px}.goals-list[data-v-143bd2af]{flex-direction:column;gap:14px;display:flex}.goal-row[data-v-143bd2af]{flex-direction:column;gap:6px;display:flex}.goal-meta[data-v-143bd2af]{align-items:center;gap:8px;display:flex}.goal-cat-dot[data-v-143bd2af]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.goal-name[data-v-143bd2af]{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;font-weight:500;overflow:hidden}.goal-pct[data-v-143bd2af]{color:var(--text);font-size:13px;font-weight:700}.goal-track[data-v-143bd2af]{background:var(--surface2);border-radius:3px;height:5px;overflow:hidden}.goal-fill[data-v-143bd2af]{border-radius:3px;height:100%;transition:width .6s}.goal-vals[data-v-143bd2af]{color:var(--muted);font-size:12px}.goal-target[data-v-143bd2af]{color:var(--muted)}.note-input[data-v-143bd2af]{resize:none;line-height:1.7}@media (width<=1100px){.stats-row[data-v-143bd2af]{grid-template-columns:repeat(2,1fr)}.main-grid[data-v-143bd2af]{grid-template-columns:1fr}.chart-card[data-v-143bd2af],.habits-today-card[data-v-143bd2af],.goals-card[data-v-143bd2af],.note-card[data-v-143bd2af]{grid-column:1}}.page-header[data-v-e045d9da]{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.page-title[data-v-e045d9da]{font-family:var(--font-display);letter-spacing:-.02em;font-size:28px;font-weight:800}.page-sub[data-v-e045d9da]{color:var(--muted);margin-top:4px;font-size:14px}.add-card[data-v-e045d9da]{margin-bottom:24px}.form-title[data-v-e045d9da]{font-family:var(--font-display);margin-bottom:20px;font-size:16px;font-weight:700}.form-grid[data-v-e045d9da]{grid-template-columns:2fr 1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.form-field label[data-v-e045d9da]{margin-bottom:8px}.form-actions[data-v-e045d9da]{justify-content:flex-end;gap:10px;display:flex}.progress-card[data-v-e045d9da]{align-items:center;gap:16px;margin-bottom:28px;padding:16px 24px;display:flex}.prog-label[data-v-e045d9da]{white-space:nowrap;font-size:14px;font-weight:500}.prog-track[data-v-e045d9da]{background:var(--surface2);border-radius:4px;flex:1;height:8px;overflow:hidden}.prog-fill[data-v-e045d9da]{background:linear-gradient(90deg, var(--accent), var(--green));border-radius:4px;height:100%;transition:width .5s}.prog-pct[data-v-e045d9da]{color:var(--accent);white-space:nowrap;font-size:14px;font-weight:700}.empty-state[data-v-e045d9da]{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:80px 20px;display:flex}.empty-icon[data-v-e045d9da]{color:var(--muted);margin-bottom:8px;font-size:48px}.empty-state h3[data-v-e045d9da]{font-family:var(--font-display);font-size:20px;font-weight:700}.empty-state p[data-v-e045d9da]{color:var(--muted);max-width:340px;margin-bottom:8px}.cat-section[data-v-e045d9da]{margin-bottom:32px}.cat-head[data-v-e045d9da]{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);align-items:center;gap:8px;margin-bottom:14px;font-size:12px;font-weight:700;display:flex}.cat-dot[data-v-e045d9da]{border-radius:50%;width:8px;height:8px}.habits-grid[data-v-e045d9da]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.habit-card[data-v-e045d9da]{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;transition:all .2s}.habit-card.done[data-v-e045d9da]{background:#22c55e0a;border-color:#22c55e40}.hc-top[data-v-e045d9da]{align-items:center;margin-bottom:12px;display:flex}.hc-icon[data-v-e045d9da]{margin-right:auto;font-size:22px}.hc-streak[data-v-e045d9da]{color:var(--accent2);margin-right:8px;font-size:12px}.hc-delete[data-v-e045d9da]{color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:none;padding:4px;font-size:12px;transition:opacity .15s}.habit-card:hover .hc-delete[data-v-e045d9da]{opacity:1}.hc-delete[data-v-e045d9da]:hover{color:var(--red)}.hc-name[data-v-e045d9da]{margin-bottom:16px;font-size:15px;font-weight:600;line-height:1.3}.hc-check-btn[data-v-e045d9da]{border:1px solid var(--border);background:var(--surface2);width:100%;color:var(--muted);border-radius:8px;padding:9px;font-size:13px;font-weight:500;transition:all .15s}.hc-check-btn[data-v-e045d9da]:hover{color:var(--text);border-color:#ffffff26}.habit-card.done .hc-check-btn[data-v-e045d9da]{color:var(--green);background:#22c55e1f;border-color:#22c55e4d}.slide-down-enter-active[data-v-e045d9da],.slide-down-leave-active[data-v-e045d9da]{transition:all .25s;overflow:hidden}.slide-down-enter-from[data-v-e045d9da],.slide-down-leave-to[data-v-e045d9da]{opacity:0;transform:translateY(-10px)}.page-header[data-v-c40f5c94]{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.page-title[data-v-c40f5c94]{font-family:var(--font-display);letter-spacing:-.02em;font-size:28px;font-weight:800}.page-sub[data-v-c40f5c94]{color:var(--muted);margin-top:4px;font-size:14px}.add-card[data-v-c40f5c94]{margin-bottom:28px}.form-title[data-v-c40f5c94]{font-family:var(--font-display);margin-bottom:20px;font-size:16px;font-weight:700}.form-grid[data-v-c40f5c94]{grid-template-columns:2fr 1fr;gap:16px;margin-bottom:14px;display:grid}.form-grid-3[data-v-c40f5c94]{grid-template-columns:1fr 1fr 1fr}.form-field[data-v-c40f5c94]{flex-direction:column;display:flex}.form-actions[data-v-c40f5c94]{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.empty-state[data-v-c40f5c94]{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:80px 20px;display:flex}.empty-icon[data-v-c40f5c94]{color:var(--muted);margin-bottom:8px;font-size:48px}.empty-state h3[data-v-c40f5c94]{font-family:var(--font-display);font-size:20px;font-weight:700}.empty-state p[data-v-c40f5c94]{color:var(--muted);max-width:340px;margin-bottom:8px}.goals-grid[data-v-c40f5c94]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.goal-card[data-v-c40f5c94]{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;gap:18px;padding:24px;display:flex}.gc-header[data-v-c40f5c94]{justify-content:space-between;align-items:center;display:flex}.gc-cat[data-v-c40f5c94]{text-transform:uppercase;letter-spacing:.08em;border-radius:100px;padding:4px 10px;font-size:11px;font-weight:700}.gc-delete[data-v-c40f5c94]{color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:none;font-size:13px;transition:opacity .15s}.goal-card:hover .gc-delete[data-v-c40f5c94]{opacity:1}.gc-delete[data-v-c40f5c94]:hover{color:var(--red)}.gc-title[data-v-c40f5c94]{font-family:var(--font-display);font-size:17px;font-weight:700;line-height:1.3}.gc-progress[data-v-c40f5c94]{flex-direction:column;gap:8px;display:flex}.gc-pct-row[data-v-c40f5c94]{justify-content:space-between;align-items:baseline;display:flex}.gc-pct[data-v-c40f5c94]{font-family:var(--font-display);font-size:22px;font-weight:800}.gc-vals[data-v-c40f5c94]{color:var(--muted);font-size:13px}.gc-track[data-v-c40f5c94]{background:var(--surface2);border-radius:4px;height:8px;overflow:hidden}.gc-fill[data-v-c40f5c94]{border-radius:4px;min-width:4px;height:100%;transition:width .5s}.gc-input[data-v-c40f5c94]{font-size:14px}.gc-deadline[data-v-c40f5c94]{color:var(--muted);font-size:13px}.dl-days[data-v-c40f5c94]{color:var(--accent);margin-left:4px}.dl-days.urgent[data-v-c40f5c94]{color:var(--accent2)}.gc-milestones[data-v-c40f5c94]{border-top:1px solid var(--border);padding-top:16px}.ms-head[data-v-c40f5c94]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.ms-title[data-v-c40f5c94]{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px;font-weight:600}.ms-add[data-v-c40f5c94]{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;transition:all .15s;display:flex}.ms-add[data-v-c40f5c94]:hover{background:var(--accent);border-color:var(--accent)}.ms-form[data-v-c40f5c94]{background:var(--surface2);border-radius:var(--r-sm);flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.ms-form-actions[data-v-c40f5c94]{justify-content:flex-end;gap:8px;display:flex}.btn-sm[data-v-c40f5c94]{padding:6px 12px;font-size:12px}.ms-list[data-v-c40f5c94]{flex-direction:column;gap:8px;display:flex}.ms-item[data-v-c40f5c94]{opacity:.5;align-items:center;gap:10px;font-size:13px;display:flex}.ms-item.reached[data-v-c40f5c94]{opacity:1}.ms-dot[data-v-c40f5c94]{border:2px solid var(--border);width:20px;height:20px;color:var(--green);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:flex}.ms-item.reached .ms-dot[data-v-c40f5c94]{background:var(--green);border-color:var(--green);color:#fff}.ms-name[data-v-c40f5c94]{flex:1}.ms-val[data-v-c40f5c94]{color:var(--muted)}.ms-empty[data-v-c40f5c94]{color:var(--muted);font-size:13px}.slide-down-enter-active[data-v-c40f5c94],.slide-down-leave-active[data-v-c40f5c94]{transition:all .25s}.slide-down-enter-from[data-v-c40f5c94],.slide-down-leave-to[data-v-c40f5c94]{opacity:0;transform:translateY(-8px)}:root{--bg:#070709;--surface:#0f0f12;--surface2:#16161c;--border:#ffffff12;--text:#f0f0f4;--muted:#6b6b7e;--accent:#7c6af7;--accent2:#f0a500;--green:#22c55e;--red:#ef4444;--pink:#ec4899;--font-display:"Roboto", sans-serif;--font-body:"DM Sans", sans-serif;--r-sm:10px;--r-md:16px;--r-lg:24px;--r-xl:32px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-body)}input,textarea,select{font-family:var(--font-body);color:var(--text)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.btn{border-radius:var(--r-sm);border:none;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .18s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#9180ff;transform:translateY(-1px)}.btn-ghost{color:var(--muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover{color:var(--text);border-color:#ffffff26}.btn-danger{color:var(--red);background:#ef44441f;border:1px solid #ef444433}.btn-danger:hover{background:#ef444433}.input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--text);outline:none;padding:11px 14px;font-size:14px;transition:border-color .2s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--muted)}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:12px;font-weight:500;display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px}.page-enter-active{animation:.3s pageFade}@keyframes pageFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
