:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-hover: rgba(255, 255, 255, .04);--bg-input: #0d1117;--border: #30363d;--border-light: #21262d;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--accent: #d29922;--accent-subtle: rgba(210, 153, 34, .15);--green: #3fb950;--green-glow: rgba(63, 185, 80, .1);--blue: #58a6ff;--blue-glow: rgba(88, 166, 255, .1);--purple: #bc8cff;--purple-glow: rgba(188, 140, 255, .1);--orange: #d29922;--orange-glow: rgba(210, 153, 34, .1);--pink: #f778ba;--pink-glow: rgba(247, 120, 186, .1);--red: #f85149;--red-glow: rgba(248, 81, 73, .1);--cyan: #56d4dd;--accent-dim: rgba(210, 153, 34, .1);--accent-glow: rgba(210, 153, 34, .15);--border-subtle: #30363d;--border-medium: #484f58;--border-accent: rgba(210, 153, 34, .3);--bg-card: #161b22;--bg-card-hover: #1c2128;--bg-glass: rgba(255, 255, 255, .03);--bg-glass-hover: rgba(255, 255, 255, .06);--success: #d29922;--danger: #f85149;--warning: #d29922;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .4);--glass-blur: none;--radius: 6px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 6px;--radius-xl: 8px;--radius-full: 4px;--transition-fast: .12s ease;--transition-normal: .15s ease;--transition-slow: .2s ease;--font-main: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-main);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;font-size:14px}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes checkmark{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes progressRing{0%{stroke-dashoffset:var(--circumference)}to{stroke-dashoffset:var(--dash-offset)}}@keyframes confettiFall{0%{transform:translateY(-100%) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.loading-screen,.page-loading{display:flex;align-items:center;justify-content:center;min-height:200px;flex:1}.spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--accent);color:#0d1117;border:none;border-radius:var(--radius);font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity var(--transition-fast)}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);font-size:.8rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-secondary:hover{background:var(--bg-hover)}.btn-danger{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:#f8514926;color:var(--red);border:1px solid rgba(248,81,73,.3);border-radius:var(--radius);font-size:.8rem;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.btn-danger:hover{background:#f8514940}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon.danger:hover{color:var(--red);background:var(--red-glow)}.btn-icon-sm{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.btn-icon-sm:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon-sm.has-note{color:var(--accent)}.btn-small{padding:5px 10px;font-size:.75rem}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.login-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:40px 32px;width:100%;max-width:360px;text-align:center}.login-header{margin-bottom:28px}.login-logo{width:48px;height:48px;background:var(--accent);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:#0d1117}.login-header h1{font-size:1.3rem;font-weight:600;margin-bottom:4px;color:var(--text-primary)}.login-header p{color:var(--text-secondary);font-size:.85rem}.login-error{background:var(--red-glow);color:var(--red);padding:10px 14px;border-radius:var(--radius-sm);font-size:.8rem;margin-bottom:16px;border:1px solid rgba(248,81,73,.2)}.header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:52px;background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:24px}.header-logo{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-weight:600;font-size:.9rem;cursor:pointer}.header-logo:hover{opacity:.8}.header-logo .logo-icon{width:26px;height:26px;background:var(--accent);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#0d1117}.header-logo span{color:var(--text-primary)}.header-nav{display:flex;gap:2px}.nav-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;background:transparent;border:none;border-radius:var(--radius);color:var(--text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-btn.active{background:var(--bg-tertiary);color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:10px}.header-user{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.8rem}.header-user .user-avatar{width:26px;height:26px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.7rem;font-weight:600}.main-content{flex:1;max-width:880px;width:100%;margin:0 auto;padding:24px 20px}.dashboard{animation:fadeIn .2s ease}.dashboard-hero{display:flex;gap:20px;align-items:center;margin-bottom:24px;padding:20px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.dashboard-hero-left{flex-shrink:0}.dashboard-hero-right{flex:1;display:flex;flex-direction:column;gap:10px}.dashboard-date{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-secondary)}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.hero-stat{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:10px;text-align:center}.hero-stat-value{font-size:1.1rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.hero-stat-value.streak{color:var(--orange)}.hero-stat-value.score{color:var(--blue)}.hero-stat-label{font-size:.65rem;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.4px}.progress-ring-container{position:relative;display:flex;align-items:center;justify-content:center}.progress-ring-text{position:absolute;display:flex;flex-direction:column;align-items:center}.progress-ring-value{font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums}.progress-ring-label{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-top:2px}.progress-ring svg circle{transition:stroke-dashoffset .6s ease}.category-filter{display:flex;gap:6px;margin-bottom:16px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.category-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:.75rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.category-pill:hover{background:var(--bg-hover);color:var(--text-primary)}.category-pill.active{background:var(--accent-subtle);border-color:var(--border-accent);color:var(--accent)}.habit-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.habit-card{background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:14px;transition:background var(--transition-fast)}.habit-card:hover{background:var(--bg-card-hover)}.habit-card.completed{border-left-color:var(--accent);background:#3fb9500a}.habit-card.completed .habit-name{color:var(--text-secondary)}.habit-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.habit-card-info{display:flex;gap:10px;align-items:flex-start;flex:1;min-width:0}.habit-icon-circle{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0}.habit-icon{font-size:1.1rem;line-height:1}.habit-name{font-size:.85rem;font-weight:600;transition:color var(--transition-fast)}.habit-desc{font-size:.75rem;color:var(--text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.streak-badge{display:flex;align-items:center;gap:3px;padding:2px 8px;background:var(--orange-glow);color:var(--orange);border-radius:var(--radius-sm);font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.streak-badge.high-streak{color:var(--orange)}.habit-card-bottom{display:flex;justify-content:space-between;align-items:center}.habit-meta{display:flex;gap:4px;flex-wrap:wrap}.frequency-badge,.target-badge,.category-badge-sm{font-size:.65rem;padding:2px 6px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-light)}.category-badge-sm{background:var(--purple-glow);color:var(--purple);border-color:#bc8cff33}.checkin-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.checkin-toggle{width:34px;height:34px;border-radius:50%;border:2px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.checkin-toggle:hover{border-color:var(--accent);color:var(--accent)}.checkin-toggle.checked{background:var(--accent);border-color:var(--accent);color:#0d1117}.checkin-empty{width:14px;height:14px;border-radius:50%;border:2px solid var(--text-muted)}.value-input-row{display:flex;align-items:center;gap:4px}.value-input{width:60px;padding:6px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.8rem;text-align:center;font-variant-numeric:tabular-nums}.value-input:focus{border-color:var(--accent);outline:none}.value-unit{font-size:.7rem;color:var(--text-muted)}.value-adjust-btn{width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;line-height:1}.value-adjust-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.note-popover-wrapper{position:relative}.note-popover{position:absolute;bottom:calc(100% + 6px);right:0;width:220px;padding:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:50}.note-popover input,.note-input-row input{width:100%;padding:6px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.78rem;font-family:var(--font-main)}.note-popover input:focus,.note-input-row input:focus{border-color:var(--accent);outline:none}.note-input-row{width:100%;margin-top:6px}.week-view{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-top:16px}.week-view-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;color:var(--text-secondary)}.week-view-header:hover{background:var(--bg-hover)}.week-view-header h3{font-size:.8rem;font-weight:600}.week-view-body{padding:10px 14px 12px;overflow-x:auto}.week-grid{display:grid;gap:3px;min-width:fit-content}.week-day-label{text-align:center;font-size:.65rem;font-weight:600;color:var(--text-muted);padding:4px 6px;text-transform:uppercase;letter-spacing:.3px}.week-day-label.today{color:var(--accent)}.week-habit-label{display:flex;align-items:center;gap:5px;font-size:.72rem;color:var(--text-secondary);padding:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-cell{display:flex;align-items:center;justify-content:center;padding:3px}.week-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);font-size:.6rem;color:transparent}.week-dot:hover:not(.future){border-color:var(--accent)}.week-dot.completed{background:var(--accent);border-color:var(--accent);color:#0d1117}.week-dot.missed{border-color:var(--border-light)}.week-dot.future{opacity:.25;cursor:default}.week-dot.future:hover{border-color:var(--border)}.habit-list-page{display:flex;flex-direction:column;gap:14px;animation:fadeIn .2s ease}.page-header{display:flex;justify-content:space-between;align-items:center}.page-header h2{font-size:1.1rem;font-weight:600}.page-header-actions{display:flex;gap:6px}.filter-tabs{display:flex;gap:2px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius);border:1px solid var(--border);width:fit-content}.filter-tab{padding:5px 14px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.78rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.filter-tab:hover{color:var(--text-primary)}.filter-tab.active{background:var(--bg-tertiary);color:var(--text-primary)}.habit-manage-list{display:flex;flex-direction:column;gap:6px}.habit-manage-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);transition:background var(--transition-fast)}.habit-manage-item:hover{background:var(--bg-card-hover)}.habit-manage-item.archived{opacity:.55}.manage-item-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.manage-item-actions{display:flex;gap:4px}.drag-handle{cursor:grab;color:var(--text-muted);display:flex;align-items:center;padding:0 4px}.drag-handle:active{cursor:grabbing}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h2{font-size:1rem;font-weight:600}.modal-body{padding:16px 20px}.modal-footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.form-group{margin-bottom:14px}.form-group label{display:block;margin-bottom:4px;font-size:.78rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:8px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.85rem;font-family:var(--font-main);transition:border-color var(--transition-fast)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent);outline:none}.form-group textarea{resize:vertical;min-height:60px}.form-group select{cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.type-toggle{display:flex;gap:6px}.type-option{flex:1;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8rem;cursor:pointer;text-align:center;transition:all var(--transition-fast)}.type-option:hover{color:var(--text-primary)}.type-option.active{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}.color-picker{display:flex;gap:6px;flex-wrap:wrap}.color-swatch{width:28px;height:28px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;transition:border-color var(--transition-fast)}.color-swatch:hover{border-color:var(--text-muted)}.color-swatch.active{border-color:var(--text-primary)}.icon-picker{display:flex;gap:4px;flex-wrap:wrap}.icon-option{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.icon-option:hover{background:var(--bg-hover)}.icon-option.active{border-color:var(--accent);background:var(--accent-subtle)}.stats-page{animation:fadeIn .2s ease}.stats-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:14px;text-align:center}.stat-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin:0 auto 8px}.stat-icon.green{background:var(--green-glow);color:var(--green)}.stat-icon.blue{background:var(--blue-glow);color:var(--blue)}.stat-icon.purple{background:var(--purple-glow);color:var(--purple)}.stat-icon.orange{background:var(--orange-glow);color:var(--orange)}.stat-value{font-size:1.3rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-label{font-size:.65rem;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.3px}.section-title{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin:20px 0 10px}.habit-stats-list{display:flex;flex-direction:column;gap:6px}.habit-stats-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.habit-stats-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-left:3px solid var(--accent);cursor:pointer;transition:background var(--transition-fast)}.habit-stats-header:hover{background:var(--bg-hover)}.habit-stats-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.habit-stats-info h3{font-size:.85rem;font-weight:600}.habit-stats-meta{display:flex;gap:8px;align-items:center;font-size:.72rem;color:var(--text-muted);margin-top:2px}.archived-badge{background:var(--orange-glow);color:var(--orange);padding:1px 6px;border-radius:var(--radius-sm);font-size:.65rem;font-weight:600}.streak-inline{display:inline-flex;align-items:center;gap:3px;color:var(--orange)}.habit-stats-detail{padding:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:14px}.detail-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.detail-stat{text-align:center;padding:10px 8px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm)}.detail-stat-value{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.detail-stat-label{font-size:.6rem;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.3px}.calendar-heatmap{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius);padding:12px}.calendar-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:10px}.calendar-year-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;padding:3px 8px;font-size:.75rem;transition:all var(--transition-fast)}.calendar-year-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.calendar-year{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}.calendar-grid-wrapper{overflow-x:auto}.calendar-months{display:flex;gap:0;padding-left:28px;margin-bottom:4px}.calendar-month-label{font-size:.6rem;color:var(--text-muted);text-align:left}.calendar-days{display:flex;flex-direction:column;gap:2px;margin-right:4px;padding-top:0}.calendar-day-label{font-size:.55rem;color:var(--text-muted);height:13px;display:flex;align-items:center}.calendar-grid{display:flex;gap:2px}.calendar-cell{width:13px;height:13px;border-radius:2px;background:var(--bg-tertiary);cursor:default;position:relative;transition:outline var(--transition-fast)}.calendar-cell:hover{outline:1px solid var(--text-muted);outline-offset:-1px}.calendar-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:.65rem;color:var(--text-primary);white-space:nowrap;z-index:10;pointer-events:none;box-shadow:var(--shadow-sm)}.milestone-badges{display:flex;gap:6px;overflow-x:auto;padding:2px 0}.milestone-badge{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);min-width:56px;flex-shrink:0}.milestone-badge.reached{border-color:var(--accent);background:var(--accent-subtle)}.milestone-badge.next{border-color:var(--border)}.milestone-badge.future{opacity:.35}.milestone-icon{font-size:1rem;line-height:1}.milestone-label{font-size:.55rem;color:var(--text-muted);white-space:nowrap}.milestone-badge.reached .milestone-label{color:var(--accent)}.weekday-chart-container{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.weekday-bar-row{display:flex;align-items:center;gap:8px}.weekday-label{width:36px;font-size:.7rem;font-weight:500;color:var(--text-secondary);text-align:right;flex-shrink:0}.weekday-label.weekday-best{color:var(--accent);font-weight:700}.weekday-bar-track{flex:1;height:14px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.weekday-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.weekday-bar-fill.good{background:var(--accent)}.weekday-bar-fill.medium{background:var(--orange)}.weekday-bar-fill.poor{background:var(--red);opacity:.7}.weekday-pct{width:32px;font-size:.7rem;font-weight:600;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}.weekday-pct.weekday-best{color:var(--accent)}.consistency-widget{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center}.consistency-score-value{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.consistency-score-value.good{color:var(--accent)}.consistency-score-value.medium{color:var(--orange)}.consistency-score-value.poor{color:var(--red)}.consistency-label{font-size:.7rem;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.3px}.sparkline-container{margin:10px 0}.consistency-averages{display:flex;justify-content:center;gap:24px;margin-top:10px}.consistency-avg{text-align:center}.consistency-avg-value{font-size:.9rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.consistency-avg-label{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-top:1px}.trend-chart-container{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius);padding:8px}.streak-history{display:flex;flex-direction:column;gap:4px}.streak-history-item{display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:.78rem}.streak-history-item.current{border-color:var(--accent)}.streak-history-value{font-weight:700;font-variant-numeric:tabular-nums;min-width:28px}.streak-history-item.current .streak-history-value{color:var(--accent)}.streak-history-dates{color:var(--text-muted);font-size:.72rem}.template-categories{display:flex;gap:4px;margin-bottom:12px;overflow-x:auto}.template-cat-btn{padding:4px 10px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.72rem;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.template-cat-btn:hover{background:var(--bg-hover)}.template-cat-btn.active{background:var(--accent-subtle);color:var(--accent);border-color:var(--border-accent)}.template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:400px;overflow-y:auto}.template-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius);padding:10px;cursor:pointer;transition:all var(--transition-fast)}.template-card:hover{border-color:var(--border);background:var(--bg-tertiary)}.template-card-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.template-card-header span:first-child{font-size:1.1rem}.template-card-header span:last-child{font-size:.8rem;font-weight:600}.template-card-body{font-size:.7rem;color:var(--text-muted);line-height:1.4}.template-card-actions{display:flex;gap:4px;margin-top:8px}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;overflow:hidden}.confetti-piece{position:absolute;width:8px;height:8px;top:-10px;animation:confettiFall 2.5s linear forwards}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:.85rem}.empty-icon{font-size:1.8rem;margin-bottom:8px}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:300}.confirm-dialog{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:20px;width:100%;max-width:380px}.confirm-dialog p{font-size:.85rem;margin-bottom:16px;color:var(--text-secondary)}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:768px){.header-left{gap:12px}.main-content{padding:16px 12px}.dashboard-hero{flex-direction:column;padding:16px}.hero-stats{grid-template-columns:repeat(3,1fr);gap:6px}.habit-cards{grid-template-columns:1fr}.stats-overview,.detail-stats-grid{grid-template-columns:repeat(2,1fr)}.template-grid,.form-row{grid-template-columns:1fr}.nav-btn span{display:none}}@media(max-width:480px){.hero-stats{grid-template-columns:1fr 1fr 1fr;gap:4px}.hero-stat{padding:8px 4px}.hero-stat-value{font-size:.95rem}}.timer-indicator{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#d299221f;border:1px solid rgba(210,153,34,.3);border-radius:var(--radius);color:var(--accent);font-size:.78rem;font-weight:600;cursor:pointer;transition:background var(--transition-fast);font-variant-numeric:tabular-nums}.timer-indicator:hover{background:#d2992233}.timer-pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.timer-label{font-variant-numeric:tabular-nums}.active-timer-widget{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#d2992214;border:1px solid rgba(210,153,34,.25);border-radius:var(--radius);margin-bottom:12px}.atw-left{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--accent);font-weight:500}.atw-elapsed{font-variant-numeric:tabular-nums;font-weight:700}.btn-stop-sm{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:#f8514926;color:var(--red);border:1px solid rgba(248,81,73,.3);border-radius:var(--radius);font-size:.75rem;font-weight:600;cursor:pointer}.btn-stop-sm:hover{background:#f8514940}.recent-events-strip{display:flex;gap:8px;margin-bottom:12px;overflow-x:auto;padding-bottom:2px}.recent-event-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid;border-radius:var(--radius);font-size:.75rem;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.chip-badge-sm{color:var(--accent);font-weight:600}.hero-stat-value.chip-value{color:var(--accent);display:inline-flex;align-items:center;gap:4px}.hero-stat-value.earned{color:var(--green)}.timer-page{animation:fadeIn .2s ease}.active-timer-card{display:flex;align-items:center;justify-content:space-between;padding:20px;background:var(--bg-secondary);border:1px solid rgba(210,153,34,.3);border-radius:var(--radius);margin-bottom:20px}.active-timer-info{display:flex;align-items:center;gap:14px}.active-timer-icon{font-size:2rem}.active-timer-name{font-size:1rem;font-weight:600}.active-timer-elapsed{font-size:1.8rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.btn-stop{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:#f8514926;color:var(--red);border:1px solid rgba(248,81,73,.3);border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer}.btn-stop:hover{background:#f8514940}.timer-start-section{margin-bottom:20px}.timer-start-section h2{font-size:1rem;font-weight:600;margin-bottom:12px}.activity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.activity-card{display:flex;align-items:center;gap:8px;padding:12px;background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);cursor:pointer;transition:background var(--transition-fast);font-size:.85rem}.activity-card:hover{background:var(--bg-card-hover)}.activity-card.add-activity{border-left-color:var(--text-muted);color:var(--text-muted)}.activity-icon{font-size:1.2rem}.activity-name{font-weight:500}.time-summary{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:16px}.time-summary h3{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:10px}.summary-bars{display:flex;flex-direction:column;gap:6px}.summary-bar-row{display:flex;align-items:center;gap:8px}.summary-bar-label{width:120px;font-size:.78rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.summary-bar-track{flex:1;height:14px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.summary-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.summary-bar-value{width:50px;font-size:.75rem;font-weight:600;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}.time-entries h3{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.entry-list{display:flex;flex-direction:column;gap:4px}.entry-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius)}.entry-info{display:flex;align-items:center;gap:8px}.entry-icon{font-size:1.1rem}.entry-name{font-size:.8rem;font-weight:500}.entry-time{font-size:.7rem;color:var(--text-muted)}.entry-right{display:flex;align-items:center;gap:8px}.entry-duration{font-size:.8rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.events-page{animation:fadeIn .2s ease}.event-list{display:flex;flex-direction:column;gap:8px}.event-card{display:flex;align-items:center;justify-content:space-between;padding:14px;background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius)}.event-card-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.event-icon-lg{font-size:1.5rem;flex-shrink:0}.event-title{font-size:.9rem;font-weight:600}.event-desc{font-size:.75rem;color:var(--text-muted);margin-top:2px}.event-date{font-size:.7rem;color:var(--text-muted);margin-top:2px}.event-card-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.chip-badge{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;background:#d299221f;color:var(--accent);border-radius:var(--radius-sm);font-size:.75rem;font-weight:700}.wallet-page{animation:fadeIn .2s ease}.payout-card-hero{background:linear-gradient(135deg,#d299221f,#d299220a);border:1px solid rgba(210,153,34,.3);border-radius:var(--radius);padding:28px;text-align:center;margin-bottom:20px}.payout-total{font-size:3rem;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}.payout-total-label{font-size:.85rem;color:var(--text-secondary);margin-top:2px;margin-bottom:16px}.payout-breakdown{display:flex;flex-direction:column;gap:4px;max-width:280px;margin:0 auto}.payout-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-secondary);padding:4px 0}.payout-row.total{font-weight:700;color:var(--accent);border-top:1px solid var(--border);margin-top:4px;padding-top:8px}.payout-week-label{font-size:.7rem;color:var(--text-muted);margin-top:12px}.payout-btn{width:100%;margin-top:16px;padding:12px 20px;font-size:.9rem}.payout-done{color:var(--green);font-size:.85rem;font-weight:600;margin-top:12px}.wallet-section{margin-bottom:20px}.wallet-section .page-header{margin-bottom:10px}.reward-list{display:flex;flex-direction:column;gap:6px}.reward-card{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.reward-info{display:flex;align-items:center;gap:10px}.reward-icon-lg{font-size:1.3rem}.reward-name{font-size:.85rem;font-weight:600}.reward-cost{font-size:.75rem;color:var(--accent);font-weight:600}.reward-actions{display:flex;align-items:center;gap:8px}.reward-redeemed{font-size:.7rem;color:var(--text-muted)}.rule-list{display:flex;flex-direction:column;gap:4px}.rule-card{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.rule-card.inactive{opacity:.5}.rule-info{flex:1}.rule-name{font-size:.85rem;font-weight:600}.rule-meta{display:flex;gap:6px;align-items:center;margin-top:2px}.rule-type-badge{font-size:.65rem;padding:1px 6px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-muted)}.transaction-list{display:flex;flex-direction:column;gap:3px}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem}.transaction-info{display:flex;align-items:center;gap:8px}.transaction-amount{font-weight:700;font-variant-numeric:tabular-nums;min-width:40px}.transaction-item.earn .transaction-amount{color:var(--green)}.transaction-item.spend .transaction-amount{color:var(--red)}.transaction-desc{color:var(--text-secondary)}.transaction-meta{display:flex;align-items:center;gap:8px}.transaction-balance,.transaction-time{color:var(--text-muted);font-size:.7rem}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-secondary);border-top:1px solid var(--border);padding:4px 0;z-index:100;justify-content:space-around}.mobile-nav-btn{display:flex;flex-direction:column;align-items:center;gap:1px;background:none;border:none;color:var(--text-muted);font-size:.6rem;cursor:pointer;padding:4px 8px;transition:color var(--transition-fast)}.mobile-nav-btn.active{color:var(--accent)}.mobile-nav-icon{font-size:1.1rem}.mobile-nav-label{font-weight:500}@media(max-width:768px){.mobile-nav{display:flex}.header-nav{display:none}.main-content{padding-bottom:64px}}
