:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--bg: #0a0a0f;--surface: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .08);--border-light: rgba(255, 255, 255, .12);--text: #f0f0f5;--text-muted: rgba(255, 255, 255, .5);--text-dim: rgba(255, 255, 255, .35);--accent: #a78bfa;--accent-glow: rgba(167, 139, 250, .25)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column;max-width:520px;margin:0 auto;padding:0 1rem}.header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 0;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:10}.logo{display:flex;align-items:center;gap:.5rem}.logo-icon{font-size:1.4rem}.logo h1{font-size:1.3rem;font-weight:700;letter-spacing:-.03em;background:linear-gradient(135deg,#a78bfa,#f472b6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav{display:flex;gap:.25rem;background:var(--surface);border-radius:.625rem;padding:.2rem;border:1px solid var(--border)}.nav-btn{background:none;border:none;color:var(--text-muted);font-size:.85rem;font-weight:500;padding:.4rem 1rem;border-radius:.5rem;cursor:pointer;transition:all .2s}.nav-btn:hover{color:var(--text)}.nav-btn.active{background:#a78bfa26;color:var(--accent)}.main{flex:1;padding:1.5rem 0;display:flex;flex-direction:column;gap:2rem}.date-banner{display:flex;align-items:center;justify-content:space-between}.date-label{font-size:1.05rem;font-weight:600;color:var(--text)}.streak-badge{font-size:.78rem;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);padding:.3rem .75rem;border-radius:2rem}.section{display:flex;flex-direction:column;gap:1rem}.section-title{font-size:.95rem;font-weight:600;color:var(--text-muted);letter-spacing:.02em}.mood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}.mood-btn{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.9rem .5rem;border-radius:.875rem;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;transition:all .25s ease}.mood-btn:hover{background:var(--surface-hover);border-color:var(--border-light);transform:translateY(-2px)}.mood-btn.selected{transform:translateY(-2px)}.mood-emoji{font-size:1.8rem;line-height:1}.mood-label{font-size:.7rem;color:var(--text-muted);font-weight:500}.mood-btn.selected .mood-label{color:var(--text)}.habits-list{display:flex;flex-direction:column;gap:.4rem}.habit-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-radius:.75rem;border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:all .2s;font-size:.9rem;color:var(--text);width:100%;text-align:left}.habit-item:hover{background:var(--surface-hover);border-color:var(--border-light)}.habit-item.completed{background:#22c55e0f;border-color:#22c55e33}.habit-check{font-size:1.1rem;flex-shrink:0}.habit-icon{font-size:1.15rem;flex-shrink:0}.habit-label{font-weight:500}.habit-item.completed .habit-label{text-decoration:line-through;color:var(--text-muted)}.habit-progress{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.progress-bar{flex:1;height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#a78bfa,#f472b6);border-radius:3px;transition:width .4s ease}.progress-text{font-size:.78rem;color:var(--text-dim);white-space:nowrap}.note-input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.9rem 1rem;color:var(--text);font-family:inherit;font-size:.9rem;line-height:1.5;resize:vertical;transition:border-color .2s}.note-input::placeholder{color:var(--text-dim)}.note-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.stat-card{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:1.1rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:.875rem}.stat-value{font-size:1.6rem;font-weight:700;background:linear-gradient(135deg,#a78bfa,#f472b6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:.72rem;color:var(--text-dim);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.week-timeline{display:flex;justify-content:space-between;gap:.4rem}.week-day{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1}.week-day-name{font-size:.7rem;color:var(--text-dim);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.week-mood-bubble{width:3.2rem;height:3.2rem;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:all .3s}.week-mood-emoji{font-size:1.4rem}.week-day-date{font-size:.75rem;color:var(--text-dim);font-weight:600}.habit-breakdown{display:flex;flex-direction:column;gap:.65rem}.breakdown-row{display:flex;align-items:center;gap:.6rem}.breakdown-icon{font-size:1rem;flex-shrink:0;width:1.5rem;text-align:center}.breakdown-label{font-size:.82rem;color:var(--text-muted);font-weight:500;width:5.5rem;flex-shrink:0}.breakdown-bar-track{flex:1;height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.breakdown-bar-fill{height:100%;background:linear-gradient(90deg,#a78bfa,#f472b6);border-radius:4px;transition:width .5s ease}.breakdown-count{font-size:.75rem;color:var(--text-dim);font-weight:600;width:2rem;text-align:right}.notes-list{display:flex;flex-direction:column;gap:.6rem}.note-card{padding:.9rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem}.note-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.note-mood{font-size:1.3rem}.note-date{font-size:.75rem;color:var(--text-dim);font-weight:500}.note-text{font-size:.85rem;color:var(--text-muted);line-height:1.5}.empty-state{font-size:.85rem;color:var(--text-dim);text-align:center;padding:1.5rem 0}.footer{text-align:center;padding:1.5rem 0;font-size:.75rem;color:var(--text-dim);border-top:1px solid var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.main>*{animation:fadeIn .3s ease both}.main>*:nth-child(1){animation-delay:.05s}.main>*:nth-child(2){animation-delay:.1s}.main>*:nth-child(3){animation-delay:.15s}.main>*:nth-child(4){animation-delay:.2s}
