.layout{background-color:#f5f5f5;flex-direction:column;min-height:100dvh;display:flex}.header{z-index:100;background-color:#fff;border-bottom:1px solid #e0e0e0;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:12px;padding:12px 16px;display:grid;position:sticky;top:0}.headerMonthLabel{text-align:center;color:#333;white-space:nowrap;text-overflow:ellipsis;justify-self:center;max-width:calc(100vw - 260px);font-size:22px;font-weight:700;line-height:1;overflow:hidden}.modeSelector{background-color:#f0f0f0;border-radius:12px;justify-self:start;gap:4px;padding:4px;display:flex}.modeButton{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:40px;height:36px;font-size:18px;transition:background-color .2s,transform .1s;display:flex}.modeButton:hover{background-color:#e0e0e0}.modeButton:active{transform:scale(.95)}.modeButton.active{background-color:#fff;box-shadow:0 1px 3px #0000001a}.viewToggle{background-color:#f0f0f0;border-radius:12px;justify-self:end;gap:4px;padding:4px;display:flex}.viewButton{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:40px;height:36px;font-size:18px;transition:background-color .2s,transform .1s;display:flex}.viewButton:hover{background-color:#e0e0e0}.viewButton:active{transform:scale(.95)}.viewButton.active{background-color:#fff;box-shadow:0 1px 3px #0000001a}.main{flex:1;padding-bottom:80px;overflow-y:auto}.bottomBar{height:64px;padding-bottom:env(safe-area-inset-bottom);z-index:100;background-color:#fff;border-top:1px solid #e0e0e0;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottomBarButton{cursor:pointer;color:#666;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 16px;font-size:12px;text-decoration:none;transition:color .2s;display:flex}.bottomBarButton:hover,.bottomBarButton.active{color:#1976d2}.bottomBarButton .icon{font-size:24px}.bottomBarButton.createButton{position:relative}.bottomBarButton.createButton .icon{color:#fff;background-color:#1976d2;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-top:-24px;font-size:28px;display:flex;box-shadow:0 2px 8px #1976d24d}.bottomBarButton.createButton .label{margin-top:4px}.dateStrip{background-color:#fff;border-bottom:1px solid #e0e0e0;align-items:center;gap:8px;padding:12px 16px;display:flex;overflow:hidden}.dateNavButton{cursor:pointer;color:#666;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:background-color .2s;display:flex}.dateNavButton:hover{background-color:#f0f0f0}.dateNavButton:active{background-color:#e0e0e0}.dateList{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;flex:1;gap:8px;padding:4px 0;display:flex;overflow-x:auto}.dateList::-webkit-scrollbar{display:none}.dateItem{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;min-width:48px;height:60px;padding:8px 4px;transition:background-color .2s,transform .1s;display:flex}.dateItem:hover{background-color:#f0f0f0}.dateItem:active{transform:scale(.95)}.dateItem.selected{color:#fff;background-color:#1976d2}.dateItem.today:not(.selected){border:2px solid #1976d2}.dayName{text-transform:uppercase;color:#888;margin-bottom:4px;font-size:11px;font-weight:500}.dateItem.selected .dayName{color:#fffc}.dayNumber{font-size:18px;font-weight:600}.setRow{background-color:var(--bg-card,#fff);border-radius:8px;align-items:center;gap:12px;margin-bottom:4px;padding:8px 12px;transition:opacity .2s;display:flex}.setNumber{width:24px;height:24px;color:var(--text-muted,#999);background-color:var(--bg,#f5f5f5);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.setValues{flex:1;align-items:center;gap:8px;display:flex}.setValue{border:1px solid var(--border,#e0e0e0);color:var(--text,#333);cursor:pointer;text-align:center;background:0 0;border-radius:6px;min-width:70px;padding:6px 12px;font-size:16px;font-weight:500;transition:background-color .2s,border-color .2s}.setValue:hover{background-color:var(--bg,#f5f5f5);border-color:var(--primary,#1976d2)}.setValue.weight{min-width:80px}.setMultiplier{color:var(--text-muted,#999);font-size:14px}.setInput{border:2px solid var(--primary,#1976d2);text-align:center;border-radius:6px;outline:none;width:70px;padding:6px 8px;font-size:16px;font-weight:500}.setInput:focus{box-shadow:0 0 0 3px var(--primary-light,#1976d21a)}.setActions{gap:4px;display:flex}.deleteButton{cursor:pointer;width:32px;height:32px;color:var(--text-muted,#999);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:16px;transition:background-color .2s,transform .1s;display:flex}.deleteButton:hover{background-color:var(--error,#f44336);color:#fff}.deleteButton:active{transform:scale(.95)}.exerciseCard{background-color:var(--bg-card,#fff);border-radius:12px;margin-bottom:12px;overflow:hidden;box-shadow:0 1px 3px #00000014}.exerciseHeader{cursor:pointer;justify-content:space-between;align-items:center;padding:16px;transition:background-color .2s;display:flex}.exerciseHeader:hover{background-color:#00000005}.exerciseInfo{flex-direction:column;gap:4px;display:flex}.exerciseName{color:var(--text,#333);font-size:18px;font-weight:600;text-decoration:none}.exerciseName:hover{color:var(--primary,#1976d2);text-decoration:underline}.exerciseCategory{color:var(--text-muted,#999);text-transform:capitalize;font-size:13px}.exerciseMeta{align-items:center;gap:12px;display:flex}.exerciseStats{color:var(--text-secondary,#666);font-size:14px}.exerciseVolume{color:var(--primary,#1976d2);font-size:14px;font-weight:500}.expandButton{width:28px;height:28px;color:var(--text-muted,#999);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:12px;transition:background-color .2s;display:flex}.expandButton:hover{background-color:var(--bg,#f5f5f5)}.exerciseContent{padding:0 16px 16px}.noSets{text-align:center;color:var(--text-muted,#999);padding:16px 0;font-size:14px}.setsList{margin-bottom:12px}.exerciseActions{gap:8px;display:flex}.addSetButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:8px;flex:1;padding:10px 16px;font-size:14px;font-weight:500;transition:background-color .2s}.addSetButton:hover{background-color:#1565c0}.removeExerciseButton{color:var(--text-muted,#999);border:1px solid var(--border,#e0e0e0);cursor:pointer;background-color:#0000;border-radius:8px;padding:10px 16px;font-size:14px;transition:all .2s}.removeExerciseButton:hover{background-color:var(--error,#f44336);color:#fff;border-color:var(--error,#f44336)}.stateContainer{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.stateIcon{opacity:.7;margin-bottom:16px;font-size:48px}.stateIcon.error{color:var(--error,#f44336)}.stateMessage{color:var(--text-secondary,#666);max-width:280px;margin-bottom:24px;font-size:16px}.loadingSpinner{border:3px solid var(--border,#e0e0e0);border-top-color:var(--primary,#1976d2);border-radius:50%;width:40px;height:40px;margin-bottom:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.retryButton,.actionButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:12px 24px;font-size:16px;font-weight:500;transition:background-color .2s;display:inline-flex}.retryButton:hover,.actionButton:hover{background-color:#1565c0}.retryButton:active,.actionButton:active{transform:scale(.98)}.pageContainer{padding:16px}.pageTitle{color:#333;margin-bottom:16px;font-size:24px;font-weight:600}.emptyState{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.emptyStateIcon{opacity:.5;margin-bottom:16px;font-size:64px}.emptyStateText{color:#666;max-width:280px;margin-bottom:24px;font-size:16px}.emptyStateButton{color:#fff;cursor:pointer;background-color:#1976d2;border:none;border-radius:8px;align-items:center;gap:8px;padding:12px 24px;font-size:16px;font-weight:500;transition:background-color .2s;display:inline-flex}.emptyStateButton:hover{background-color:#1565c0}.section{margin-bottom:24px}.sectionHeader{cursor:pointer;background-color:#fff;border-bottom:1px solid #e0e0e0;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.sectionTitle{color:#333;align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.sectionIcon{font-size:20px}.sectionContent{background-color:#fff;border-radius:0 0 8px 8px;padding:16px}.placeholder{color:#999;font-size:14px;font-style:italic}.workoutNote{background-color:var(--bg-card,#fff);color:var(--text-secondary,#666);border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:14px;font-style:italic}.exercisesList{margin-bottom:16px}.addExerciseButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:100%;padding:14px 24px;font-size:16px;font-weight:500;text-decoration:none;transition:background-color .2s;display:flex}.addExerciseButton:hover{background-color:#1565c0;text-decoration:none}.habitCard{background:var(--bg-card,#fff);border-left:4px solid var(--habit-color,var(--primary,#1976d2));cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;margin-bottom:12px;padding:16px;transition:all .2s;box-shadow:0 1px 3px #00000014}.habitCard:hover{box-shadow:0 2px 8px #0000001f}.habitCard.completed{background:linear-gradient(135deg,#4caf5014 0%,#4caf500a 100%)}.habitCard.readOnly{opacity:.86}.habitCardMain{justify-content:space-between;align-items:center;gap:12px;display:flex}.habitInfo{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.habitColor{border-radius:50%;flex-shrink:0;width:12px;height:12px}.habitText{flex-direction:column;min-width:0;display:flex}.habitName{color:var(--text,#333);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:500;overflow:hidden}.habitDescription{color:var(--text-secondary,#666);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;overflow:hidden}.habitStatus{flex-shrink:0}.habitCheckbox{border:2px solid var(--border,#e0e0e0);color:#fff;cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:18px;transition:all .2s;display:flex}.habitCheckbox.checked{background:var(--success,#4caf50);border-color:var(--success,#4caf50)}.habitCheckbox:disabled{cursor:default;opacity:.75}.habitNumericInput{align-items:center;gap:4px;display:flex}.habitValueButton{border:1px solid var(--border,#e0e0e0);background:var(--bg,#f5f5f5);min-width:48px;color:var(--text,#333);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:16px;font-weight:500;transition:all .2s}.habitValueButton:hover{border-color:var(--primary,#1976d2)}.habitValueInput{border:2px solid var(--primary,#1976d2);text-align:center;width:60px;color:var(--text,#333);border-radius:8px;padding:6px 8px;font-size:16px;font-weight:500}.habitValueInput:focus{outline:none}.habitValueReadonly{border:1px solid var(--border,#e0e0e0);min-width:48px;color:var(--text-secondary,#666);text-align:center;background:#f4f4f4;border-radius:8px;padding:6px 12px;font-size:16px;font-weight:500}.habitGoal{color:var(--text-secondary,#666);font-size:14px}.habitStreak{border-top:1px solid var(--border,#e0e0e0);color:var(--text-secondary,#666);margin-top:12px;padding-top:10px;font-size:13px}.dayHabitsPage{flex-direction:column;min-height:100%;padding:16px 16px 80px;display:flex}.habitsHeader{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.habitsProgress{color:var(--text-secondary,#666);font-size:14px;font-weight:500}.addHabitLink{color:var(--primary,#1976d2);font-size:14px;font-weight:500;text-decoration:none}.addHabitLink:hover{text-decoration:underline}.habitsList{flex:1}.inactiveNote{text-align:center;color:var(--text-muted,#999);margin-top:16px;font-size:13px}.logEntryCard{background:var(--bg-card,#fff);cursor:pointer;border-radius:12px;margin-bottom:12px;padding:16px;transition:all .2s;position:relative;box-shadow:0 1px 3px #00000014}.logEntryCard:hover{box-shadow:0 2px 8px #0000001f}.logEntryCard:active{transform:scale(.99)}.logEntryHeader{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.logEntryCategory{align-items:center;gap:6px;display:flex}.logEntryCategoryIcon{font-size:16px}.logEntryCategoryName{font-size:13px;font-weight:500}.logEntryTime{color:var(--text-muted,#999);font-size:12px}.logEntryTitle{color:var(--text,#333);margin:0 0 8px;font-size:16px;font-weight:600;line-height:1.3}.logEntryContent{color:var(--text-secondary,#666);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.logEntryTags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.logEntryTag{background-color:var(--bg-hover,#f0f0f0);color:var(--text-secondary,#666);border-radius:12px;padding:4px 10px;font-size:12px}.logEntryDeleteButton{background:var(--bg-hover,#f5f5f5);width:28px;height:28px;color:var(--text-muted,#999);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:all .2s;display:none;position:absolute;top:12px;right:12px}.logEntryCard:hover .logEntryDeleteButton{display:flex}.logEntryDeleteButton:hover{color:#dc2626;background-color:#fef2f2}.dayLogPage{flex-direction:column;min-height:100%;padding:16px 16px 80px;display:flex}.logFilters{margin-bottom:16px}.logSearchInput{border:1px solid var(--border,#e0e0e0);background-color:var(--bg-card,#fff);border-radius:10px;width:100%;margin-bottom:12px;padding:12px 16px;font-size:16px}.logSearchInput:focus{border-color:var(--primary,#1976d2);box-shadow:0 0 0 3px var(--primary-light,#1976d21a);outline:none}.logCategoryFilter{scrollbar-width:none;gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.logCategoryFilter::-webkit-scrollbar{display:none}.logCategoryButton{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);color:var(--text-secondary,#666);white-space:nowrap;cursor:pointer;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;font-size:14px;transition:all .2s;display:flex}.logCategoryButton:hover{border-color:var(--cat-color,var(--primary,#1976d2));color:var(--cat-color,var(--primary,#1976d2))}.logCategoryButton.active{background-color:var(--cat-color,var(--primary,#1976d2));border-color:var(--cat-color,var(--primary,#1976d2));color:#fff}.logEntriesList{flex:1}.addLogButton{text-align:center;color:var(--primary,#1976d2);margin-top:12px;padding:12px 20px;font-size:14px;font-weight:500;text-decoration:none;display:block}.addLogButton:hover{text-decoration:underline}.dayAllPage{padding:16px 16px 80px}.collapsibleSection{background-color:#fff;border-radius:12px;margin-bottom:16px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.collapsibleHeader{cursor:pointer;color:#333;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:16px;font-size:16px;font-weight:600;transition:background-color .2s;display:flex}.collapsibleHeader:hover{background-color:#f5f5f5}.collapsibleTitle{align-items:center;gap:8px;display:flex}.collapsibleIcon{font-size:20px}.collapsibleCount{color:#fff;background-color:#1976d2;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.collapsibleArrow{color:#888;font-size:12px;transition:transform .2s}.collapsibleArrow.open{transform:rotate(180deg)}.collapsibleContent{border-top:1px solid #e0e0e0;padding:16px}.sectionEmpty{color:#999;text-align:center;padding:8px;font-size:14px}.sectionEmpty a{color:#1976d2;font-weight:500;text-decoration:none}.sectionEmpty a:hover{text-decoration:underline}.exercisesList,.habitsList,.logEntriesList{flex-direction:column;gap:12px;display:flex}.fab{color:#fff;cursor:pointer;z-index:100;background-color:#1976d2;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;font-weight:300;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:80px;right:20px;box-shadow:0 4px 12px #1976d266}.fab:hover{transform:scale(1.05);box-shadow:0 6px 16px #1976d280}.fab:active{transform:scale(.95)}.bottomSheetOverlay{z-index:200;background-color:#00000080;animation:.2s ease-out fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.bottomSheet{z-index:201;background-color:#fff;border-radius:16px 16px 0 0;padding:16px 16px 32px;animation:.3s ease-out slideUp;position:fixed;bottom:0;left:0;right:0}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottomSheetHandle{background-color:#ddd;border-radius:2px;width:40px;height:4px;margin:0 auto 16px}.bottomSheetTitle{color:#333;text-align:center;margin-bottom:16px;font-size:18px;font-weight:600}.bottomSheetOptions{flex-direction:column;gap:8px;display:flex}.bottomSheetOption{color:#333;cursor:pointer;background:#f5f5f5;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:16px;font-size:16px;transition:background-color .2s;display:flex}.bottomSheetOption:hover{background-color:#e8e8e8}.bottomSheetOptionIcon{font-size:24px}.bottomSheetCancel{color:#666;cursor:pointer;background:0 0;border:1px solid #e0e0e0;border-radius:12px;width:100%;margin-top:16px;padding:16px;font-size:16px;transition:background-color .2s}.bottomSheetCancel:hover{background-color:#f5f5f5}.calendar{background-color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.calendarHeader{justify-content:space-between;align-items:center;padding:16px;display:flex}.calendarNavButton{cursor:pointer;color:#333;background:#f0f0f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;transition:background-color .2s;display:flex}.calendarNavButton:hover{background-color:#e0e0e0}.calendarTitle{color:#333;margin:0;font-size:20px;font-weight:600}.calendarGrid{background:#fff;border:1px solid #e0e0e0;border-radius:12px;grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.calendarWeekday{color:#888;text-transform:uppercase;background:#fafafa;border-bottom:1px solid #e0e0e0;border-right:1px solid #e0e0e0;justify-content:center;align-items:center;height:40px;font-size:12px;font-weight:600;display:flex}.calendarDay{cursor:pointer;box-sizing:border-box;background:0 0;border:1px solid #e0e0e0;border-top:none;border-left:none;border-radius:0;flex-direction:column;justify-content:flex-start;align-items:center;min-height:72px;padding:8px 4px;transition:background-color .2s;display:flex}.calendarGrid>:nth-child(7n){border-right:none}.calendarGrid>.calendarDay:nth-last-child(-n+7){border-bottom:none}.calendarDay:hover:not(.empty){background-color:#f0f4fa}.calendarDay.empty{cursor:default;pointer-events:none}.calendarDay.outside{opacity:.4}.calendarDay.selected{color:#fff;z-index:1;background-color:#1976d2}.calendarDay.selected .dayMarker{border:1px solid #ffffff80}.calendarDay.today:not(.selected){background-color:#e3f2fd;font-weight:700}.calendarDay .dayNumber{font-size:14px;font-weight:500;line-height:1.2}.dayMarkers{gap:3px;margin-top:4px;display:flex}.dayMarker{border-radius:50%;width:6px;height:6px}.dayMarker.workouts{background-color:#4caf50}.dayMarker.habits{background-color:#ff9800}.dayMarker.log{background-color:#2196f3}.calendarViewPage,.calendarView{padding:16px}.calendarView .calendarHeader{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calendarView .calendarNavButton{cursor:pointer;color:#333;background:#f0f0f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;transition:background-color .2s;display:flex}.calendarView .calendarNavButton:hover{background-color:#e0e0e0}.calendarView .calendarTitle{color:#333;font-size:20px;font-weight:600}.calendarView .calendarGrid{background-color:#fff;border-radius:12px;grid-template-columns:repeat(7,1fr);gap:4px;padding:16px;display:grid;box-shadow:0 2px 8px #0000000d}.calendarView .calendarWeekday{color:#888;text-transform:uppercase;justify-content:center;align-items:center;height:32px;font-size:12px;font-weight:600;display:flex}.calendarView .calendarDay{cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:center;min-height:48px;padding:8px 4px;transition:background-color .2s;display:flex}.calendarView .calendarDay:hover:not(.empty){background-color:#f5f5f5}.calendarView .calendarDay.empty{cursor:default}.calendarView .calendarDay.selected{color:#fff;background-color:#1976d2}.calendarView .calendarDay.today:not(.selected){border:2px solid #1976d2}.calendarView .calendarDay .dayNumber{font-size:14px;font-weight:500}.calendarView .dayMarkers{gap:2px;margin-top:4px;display:flex}.calendarView .dayMarker{border-radius:50%;width:6px;height:6px}.calendarView .dayMarker.workouts{background-color:#4caf50}.calendarView .dayMarker.habits{background-color:#ff9800}.calendarView .dayMarker.log{background-color:#2196f3}.calendarFooter{text-align:center;margin-top:16px}.calendarHint{color:#888;font-size:14px}.dayPreview{background-color:#fff;border-radius:12px;margin-top:20px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.dayPreviewHeader{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:16px;display:flex}.dayPreviewTitle{color:#333;margin:0;font-size:16px;font-weight:600}.dayPreviewButton{color:#fff;cursor:pointer;background-color:#1976d2;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .2s}.dayPreviewButton:hover{background-color:#1565c0}.dayPreviewLoading{text-align:center;color:#888;padding:24px}.dayPreviewContent{padding:16px}.previewSection{margin-bottom:16px}.previewSection:last-child{margin-bottom:0}.previewSectionHeader{align-items:center;gap:8px;margin-bottom:12px;display:flex}.previewSectionIcon{font-size:18px}.previewSectionTitle{color:#666;font-size:14px;font-weight:600}.previewSectionContent{flex-direction:column;gap:8px;display:flex}.previewEmpty{text-align:center;color:#999;background-color:#f5f5f5;border-radius:8px;padding:12px;font-size:14px}.previewMore{text-align:center;color:#1976d2;padding:8px;font-size:14px;font-weight:500}.calendarLegend{background-color:#fff;border-radius:8px;justify-content:center;gap:24px;margin-top:16px;padding:12px;display:flex;box-shadow:0 2px 8px #0000000d}.legendItem{color:#666;align-items:center;gap:6px;font-size:12px;display:flex}.legendMarker{border-radius:50%;width:8px;height:8px}.legendMarker.workouts{background-color:#4caf50}.legendMarker.habits{background-color:#ff9800}.legendMarker.log{background-color:#2196f3}.addExercisePage{flex-direction:column;min-height:100%;padding:16px 16px 80px;display:flex}.addExercisePage .addExerciseHeader{align-items:center;gap:12px;margin-bottom:20px;display:flex}.addExercisePage .backButton{color:var(--primary,#1976d2);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:16px;transition:background-color .2s}.addExercisePage .backButton:hover{background-color:var(--primary-light,#1976d21a)}.addExercisePage .addExerciseTitle{color:var(--text,#333);margin:0;font-size:20px;font-weight:600}.addExercisePage .searchSection{margin-bottom:16px}.addExercisePage .searchInput{border:1px solid var(--border,#e0e0e0);background-color:var(--bg-card,#fff);border-radius:10px;width:100%;margin-bottom:12px;padding:12px 16px;font-size:16px}.addExercisePage .searchInput:focus{border-color:var(--primary,#1976d2);box-shadow:0 0 0 3px var(--primary-light,#1976d21a);outline:none}.addExercisePage .categoryFilter{scrollbar-width:none;gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.addExercisePage .categoryFilter::-webkit-scrollbar{display:none}.addExercisePage .categoryButton{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);color:var(--text-secondary,#666);white-space:nowrap;cursor:pointer;text-transform:capitalize;border-radius:20px;flex-shrink:0;padding:8px 14px;font-size:14px;transition:all .2s}.addExercisePage .categoryButton:hover{border-color:var(--primary,#1976d2);color:var(--primary,#1976d2)}.addExercisePage .categoryButton.active{background-color:var(--primary,#1976d2);border-color:var(--primary,#1976d2);color:#fff}.addExercisePage .errorBanner{color:#dc2626;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.addExercisePage .errorBanner button{color:#dc2626;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}.addExercisePage .exercisesList{flex-direction:column;flex:1;gap:8px;display:flex}.addExercisePage .exerciseItem{background-color:var(--bg-card,#fff);border:1px solid var(--border,#e0e0e0);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;padding:16px;transition:all .2s;display:flex}.addExercisePage .exerciseItem:hover{border-color:var(--primary,#1976d2);background-color:var(--primary-light,#1976d20d)}.addExercisePage .exerciseItemInfo{flex-direction:column;gap:4px;display:flex}.addExercisePage .exerciseItemName{color:var(--text,#333);font-size:16px;font-weight:500}.addExercisePage .exerciseItemCategory{color:var(--text-muted,#999);text-transform:capitalize;font-size:13px}.addExercisePage .exerciseItemUsage{color:var(--text-secondary,#666);font-size:13px}.addExercisePage .noExercises{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.addExercisePage .noExercises p{color:var(--text-muted,#999);margin-bottom:16px}.addExercisePage .createNewButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:500;transition:background-color .2s}.addExercisePage .createNewButton:hover{background-color:#1565c0}.addExercisePage .floatingCreateButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:24px;padding:12px 24px;font-size:16px;font-weight:500;transition:all .2s;position:fixed;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #1976d266}.addExercisePage .floatingCreateButton:hover{transform:translate(-50%)scale(1.05);box-shadow:0 6px 16px #1976d280}.addExercisePage .createFormOverlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.addExercisePage .createForm{background-color:var(--bg-card,#fff);border-radius:16px;width:100%;max-width:400px;padding:24px}.addExercisePage .createForm h2{color:var(--text,#333);margin:0 0 20px;font-size:20px}.addExercisePage .formInput{border:1px solid var(--border,#e0e0e0);border-radius:8px;width:100%;margin-bottom:12px;padding:12px 16px;font-size:16px}.addExercisePage .formInput:focus{border-color:var(--primary,#1976d2);outline:none}.addExercisePage .formActions{gap:12px;margin-top:8px;display:flex}.addExercisePage .cancelButton{border:1px solid var(--border,#e0e0e0);cursor:pointer;color:var(--text-secondary,#666);background:0 0;border-radius:8px;flex:1;padding:12px;font-size:16px;transition:background-color .2s}.addExercisePage .cancelButton:hover{background-color:var(--bg,#f5f5f5)}.addExercisePage .submitButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px;font-size:16px;font-weight:500;transition:background-color .2s}.addExercisePage .submitButton:hover{background-color:#1565c0}.exerciseHistoryPage{padding:16px 16px 80px}.historyHeader{align-items:center;gap:12px;margin-bottom:24px;display:flex}.historyHeader .backButton{background-color:var(--bg-card,#fff);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;transition:background-color .2s;display:flex}.historyHeader .backButton:hover{background-color:var(--bg,#f5f5f5)}.headerInfo{flex-direction:column;gap:4px;display:flex}.exerciseTitle{color:var(--text,#333);margin:0;font-size:22px;font-weight:600}.exerciseCategoryBadge{color:var(--text-muted,#999);text-transform:capitalize;font-size:13px}.statsSection{margin-bottom:24px}.periodSelector{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.periodButton:hover{border-color:var(--primary,#1976d2)}.statsGrid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.statCard{background-color:var(--bg-card,#fff);border-radius:12px;flex-direction:column;align-items:center;padding:16px;display:flex;box-shadow:0 1px 3px #00000014}.statLabel{color:var(--text-muted,#999);margin-top:4px;font-size:13px}.progressChart{background-color:var(--bg-card,#fff);border-radius:12px;padding:16px;box-shadow:0 1px 3px #00000014}.progressChart+.progressChart{margin-top:12px}.progressChart h3{color:var(--text,#333);margin:0 0 10px;font-size:16px;font-weight:600}.noChartData{color:var(--text-secondary,#666)}.tonnageChartContainer{width:100%;padding-bottom:10px;position:relative}.tonnageChartSvg{width:100%;height:auto;max-height:220px;display:block;overflow:visible}.tonnageGridLine{stroke:#94a3b847;stroke-width:1px;shape-rendering:crispedges}.tonnageAxisLabel{fill:var(--text-muted,#999);font-size:10px}.tonnageArea{fill:url(#tonnage-fill)}.tonnageLine{fill:none;stroke:var(--primary,#1976d2);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.tonnagePoint{fill:var(--primary,#1976d2);stroke:var(--bg-card,#fff);stroke-width:2px}.tonnagePoint.active{fill:#1565c0}.tonnageHoverGuide{stroke:#1976d28c;stroke-width:1.5px;stroke-dasharray:4 3;pointer-events:none}.tonnageHoverCapture{fill:#0000;cursor:crosshair}.tonnageTooltip{color:#fff;pointer-events:none;text-align:center;background:#0f172aeb;border-radius:8px;min-width:120px;padding:8px 10px;position:absolute;transform:translate(-50%,-100%);box-shadow:0 10px 24px #0f172a40}.tonnageTooltipDate{color:#fffc;font-size:11px}.tonnageTooltipValue{margin-top:2px;font-size:13px;font-weight:700}.tonnageDateLabels{height:22px;margin-top:2px;position:relative}.tonnageDateLabel{color:var(--text-muted,#999);white-space:nowrap;font-size:11px;position:absolute;transform:translate(-50%)}.historySection h2{color:var(--text,#333);margin:0 0 12px;font-size:18px;font-weight:600}.noHistory{text-align:center;color:var(--text-muted,#999);padding:24px}.historyList{flex-direction:column;gap:8px;display:flex}.historyEntry{background-color:var(--bg-card,#fff);border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex;box-shadow:0 1px 2px #0000000d}.historyDate{color:var(--text,#333);font-size:15px;font-weight:500}.historySets{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.historySet{background-color:var(--bg,#f5f5f5);color:var(--text-secondary,#666);border-radius:6px;padding:4px 10px;font-size:13px;font-weight:500}.historyFooterStats{margin-top:20px}.habitFormPage{flex-direction:column;min-height:100%;padding:16px 16px 80px;display:flex}.habitFormPage .habitFormHeader{align-items:center;gap:12px;margin-bottom:24px;display:flex}.habitFormPage .backButton{color:var(--primary,#1976d2);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:16px;transition:background-color .2s}.habitFormPage .backButton:hover{background-color:var(--primary-light,#1976d21a)}.habitFormPage .habitFormTitle{color:var(--text,#333);margin:0;font-size:20px;font-weight:600}.habitFormPage .formError{color:#dc2626;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;display:flex}.habitFormPage .formError button{cursor:pointer;color:#dc2626;background:0 0;border:none;padding:4px;font-size:18px}.habitFormPage .habitForm{flex-direction:column;gap:20px;display:flex}.habitFormPage .formGroup{flex-direction:column;gap:8px;display:flex}.habitFormPage .formGroup.flex1{flex:1}.habitFormPage .formRow{gap:12px;display:flex}.habitFormPage .formLabel{color:var(--text,#333);font-size:14px;font-weight:500}.habitFormPage .formInput{border:1px solid var(--border,#e0e0e0);background-color:var(--bg-card,#fff);border-radius:10px;padding:12px 16px;font-size:16px}.habitFormPage .formInput:focus{border-color:var(--primary,#1976d2);box-shadow:0 0 0 3px var(--primary-light,#1976d21a);outline:none}.habitFormPage .goalTypeToggle,.habitFormPage .frequencyToggle{gap:8px;display:flex}.habitFormPage .goalTypeButton,.habitFormPage .frequencyButton{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);color:var(--text-secondary,#666);cursor:pointer;border-radius:10px;flex:1;padding:12px 16px;font-size:14px;transition:all .2s}.habitFormPage .goalTypeButton:hover,.habitFormPage .frequencyButton:hover{border-color:var(--primary,#1976d2);color:var(--primary,#1976d2)}.habitFormPage .goalTypeButton.active,.habitFormPage .frequencyButton.active{background-color:var(--primary,#1976d2);border-color:var(--primary,#1976d2);color:#fff}.habitFormPage .weekdaysPicker{gap:8px;display:flex}.habitFormPage .weekdayButton{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);width:40px;height:40px;color:var(--text-secondary,#666);cursor:pointer;border-radius:50%;font-size:13px;transition:all .2s}.habitFormPage .weekdayButton:hover{border-color:var(--primary,#1976d2);color:var(--primary,#1976d2)}.habitFormPage .weekdayButton.active{background-color:var(--primary,#1976d2);border-color:var(--primary,#1976d2);color:#fff}.habitFormPage .colorPicker{flex-wrap:wrap;gap:12px;display:flex}.habitFormPage .colorOption{cursor:pointer;border:2px solid #0000;border-radius:50%;width:36px;height:36px;transition:all .2s}.habitFormPage .colorOption:hover{transform:scale(1.1)}.habitFormPage .colorOption.active{border-color:var(--text,#333);box-shadow:0 0 0 2px #fff,0 0 0 4px}.habitFormPage .formActions{flex-direction:column;gap:12px;margin-top:16px;display:flex}.habitFormPage .submitButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:14px 24px;font-size:16px;font-weight:500;transition:background-color .2s}.habitFormPage .submitButton:hover:not(:disabled){background-color:var(--primary-dark,#1565c0)}.habitFormPage .submitButton:disabled{opacity:.6;cursor:not-allowed}.habitFormPage .deleteButton{color:#dc2626;cursor:pointer;background-color:#0000;border:1px solid #dc2626;border-radius:10px;padding:14px 24px;font-size:16px;font-weight:500;transition:all .2s}.habitFormPage .deleteButton:hover:not(:disabled){background-color:#fef2f2}.habitFormPage .deleteButton:disabled{opacity:.6;cursor:not-allowed}.habitFormPage .confirmOverlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.habitFormPage .confirmDialog{background:var(--bg-card,#fff);border-radius:16px;width:100%;max-width:320px;padding:24px}.habitFormPage .confirmText{color:var(--text,#333);text-align:center;margin:0 0 20px;font-size:16px}.habitFormPage .confirmText small{color:var(--text-secondary,#666);margin-top:8px;display:block}.habitFormPage .confirmActions{gap:12px;display:flex}.habitFormPage .confirmCancel{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);color:var(--text,#333);cursor:pointer;border-radius:10px;flex:1;padding:12px;font-size:14px}.habitFormPage .confirmDelete{color:#fff;cursor:pointer;background-color:#dc2626;border:none;border-radius:10px;flex:1;padding:12px;font-size:14px}.habitFormPage .confirmDelete:disabled{opacity:.6;cursor:not-allowed}.habitStatsPage{flex-direction:column;min-height:100%;padding:16px 16px 80px;display:flex}.habitStatsHeader{align-items:center;gap:12px;margin-bottom:24px;display:flex}.habitStatsInfo{align-items:center;gap:10px;display:flex}.habitStatsColor{border-radius:50%;width:16px;height:16px}.habitStatsTitle{color:var(--text,#333);margin:0;font-size:20px;font-weight:600}.statsGrid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px;display:grid}.statCard{background:var(--bg-card,#fff);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:16px;display:flex;box-shadow:0 1px 3px #00000014}.statValue{color:var(--text,#333);font-size:24px;font-weight:600}.statLabel{color:var(--text-secondary,#666);font-size:13px}.periodSelector{gap:8px;margin-bottom:20px;display:flex}.periodButton{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);color:var(--text-secondary,#666);cursor:pointer;border-radius:8px;flex:1;padding:10px 16px;font-size:14px;transition:all .2s}.periodButton:hover{border-color:var(--primary,#1976d2);color:var(--primary,#1976d2)}.periodButton.active{background-color:var(--primary,#1976d2);border-color:var(--primary,#1976d2);color:#fff}.chartContainer{background:var(--bg-card,#fff);border-radius:12px;margin-bottom:24px;padding:20px;box-shadow:0 1px 3px #00000014}.chartBars{align-items:flex-end;gap:4px;height:150px;display:flex}.chartBarWrapper{flex-direction:column;flex:1;align-items:center;min-width:0;height:100%;display:flex}.chartBar{border-radius:4px 4px 0 0;justify-content:center;align-items:flex-start;width:100%;max-width:30px;transition:height .3s;display:flex;position:relative}.chartBar.completed{opacity:1}.chartBarValue{color:var(--text-secondary,#666);font-size:11px;font-weight:500;position:absolute;top:-20px}.chartBarLabel{color:var(--text-muted,#999);white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-top:6px;font-size:10px;overflow:hidden}.noDataMessage{background:var(--bg-card,#fff);text-align:center;color:var(--text-secondary,#666);border-radius:12px;margin-bottom:24px;padding:40px 20px}.habitStatsActions{flex-direction:column;gap:12px;display:flex}.editHabitButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:16px;font-weight:500;text-decoration:none;transition:background-color .2s;display:flex}.editHabitButton:hover{background-color:var(--primary-dark,#1565c0)}.archiveButton{color:var(--text-secondary,#666);border:1px solid var(--border,#e0e0e0);cursor:pointer;background-color:#0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:16px;transition:all .2s;display:flex}.archiveButton:hover{border-color:var(--text-secondary,#666);background-color:var(--bg-hover,#f5f5f5)}.tagInputContainer{width:100%;position:relative}.tagInputWrapper{border:1px solid var(--border,#e0e0e0);background-color:var(--bg-card,#fff);cursor:text;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;padding:10px 12px;display:flex}.tagInputWrapper:focus-within{border-color:var(--primary,#1976d2);box-shadow:0 0 0 3px var(--primary-light,#1976d21a)}.tagChip{background-color:var(--primary-light,#1976d21a);color:var(--primary,#1976d2);border-radius:16px;align-items:center;gap:4px;padding:4px 10px;font-size:14px;display:inline-flex}.tagChipRemove{width:18px;height:18px;color:var(--primary,#1976d2);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:16px;transition:background-color .2s;display:flex}.tagChipRemove:hover{background-color:#1976d233}.tagInputField{min-width:100px;color:var(--text,#333);background:0 0;border:none;flex:1;padding:2px 0;font-size:16px}.tagInputField:focus{outline:none}.tagInputField::placeholder{color:var(--text-muted,#999)}.tagSuggestions{background:var(--bg-card,#fff);border:1px solid var(--border,#e0e0e0);z-index:100;border-radius:10px;max-height:200px;margin-top:4px;padding:8px 0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.tagSuggestionItem{cursor:pointer;justify-content:space-between;align-items:center;padding:10px 16px;transition:background-color .15s;display:flex}.tagSuggestionItem:hover,.tagSuggestionItem.highlighted{background-color:var(--bg-hover,#f5f5f5)}.tagSuggestionName{color:var(--text,#333);font-size:14px}.tagSuggestionCount{color:var(--text-muted,#999);background-color:var(--bg-hover,#f0f0f0);border-radius:10px;padding:2px 8px;font-size:12px}.logFormPage{flex-direction:column;min-height:100%;padding:16px 16px 80px;display:flex}.logFormPage .logFormHeader{align-items:center;gap:12px;margin-bottom:24px;display:flex}.logFormPage .backButton{color:var(--primary,#1976d2);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:16px;transition:background-color .2s}.logFormPage .backButton:hover{background-color:var(--primary-light,#1976d21a)}.logFormPage .logFormTitle{color:var(--text,#333);margin:0;font-size:20px;font-weight:600}.logFormPage .formError{color:#dc2626;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;display:flex}.logFormPage .formError button{cursor:pointer;color:#dc2626;background:0 0;border:none;padding:4px;font-size:18px}.logFormPage .logForm{flex-direction:column;gap:20px;display:flex}.logFormPage .formGroup{flex-direction:column;gap:8px;display:flex}.logFormPage .formLabel{color:var(--text,#333);font-size:14px;font-weight:500}.logFormPage .formInput{border:1px solid var(--border,#e0e0e0);background-color:var(--bg-card,#fff);border-radius:10px;padding:12px 16px;font-size:16px}.logFormPage .formInput:focus{border-color:var(--primary,#1976d2);box-shadow:0 0 0 3px var(--primary-light,#1976d21a);outline:none}.logFormPage .formTextarea{border:1px solid var(--border,#e0e0e0);background-color:var(--bg-card,#fff);resize:vertical;border-radius:10px;min-height:120px;padding:12px 16px;font-family:inherit;font-size:16px;line-height:1.5}.logFormPage .formTextarea:focus{border-color:var(--primary,#1976d2);box-shadow:0 0 0 3px var(--primary-light,#1976d21a);outline:none}.logFormPage .categorySelector{flex-wrap:wrap;gap:8px;display:flex}.logFormPage .categorySelectorButton{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);color:var(--text-secondary,#666);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:10px 16px;font-size:14px;transition:all .2s;display:flex}.logFormPage .categorySelectorButton:hover{border-color:var(--cat-color,var(--primary,#1976d2));color:var(--cat-color,var(--primary,#1976d2))}.logFormPage .categorySelectorButton.active{background-color:var(--cat-color,var(--primary,#1976d2));border-color:var(--cat-color,var(--primary,#1976d2));color:#fff}.logFormPage .categoryIcon{font-size:16px}.logFormPage .categoryName{font-size:14px}.logFormPage .noCategoriesHint{color:var(--text-muted,#999);margin:4px 0 0;font-size:13px}.logFormPage .formActions{flex-direction:column;gap:12px;margin-top:16px;display:flex}.logFormPage .submitButton{background-color:var(--primary,#1976d2);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:14px 24px;font-size:16px;font-weight:500;transition:background-color .2s}.logFormPage .submitButton:hover:not(:disabled){background-color:var(--primary-dark,#1565c0)}.logFormPage .submitButton:disabled{opacity:.6;cursor:not-allowed}.logFormPage .deleteButton{color:#dc2626;cursor:pointer;background-color:#0000;border:1px solid #dc2626;border-radius:10px;padding:14px 24px;font-size:16px;font-weight:500;transition:all .2s}.logFormPage .deleteButton:hover:not(:disabled){background-color:#fef2f2}.logFormPage .deleteButton:disabled{opacity:.6;cursor:not-allowed}.logFormPage .confirmOverlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.logFormPage .confirmDialog{background:var(--bg-card,#fff);border-radius:16px;width:100%;max-width:320px;padding:24px}.logFormPage .confirmText{color:var(--text,#333);text-align:center;margin:0 0 20px;font-size:16px}.logFormPage .confirmActions{gap:12px;display:flex}.logFormPage .confirmCancel{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);color:var(--text,#333);cursor:pointer;border-radius:10px;flex:1;padding:12px;font-size:14px}.logFormPage .confirmDelete{color:#fff;cursor:pointer;background-color:#dc2626;border:none;border-radius:10px;flex:1;padding:12px;font-size:14px}.logFormPage .confirmDelete:disabled{opacity:.6;cursor:not-allowed}.logViewPage{flex-direction:column;min-height:100%;padding:16px 16px 80px;display:flex}.logViewHeader{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.backButton{color:var(--primary,#1976d2);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:16px;transition:background-color .2s}.backButton:hover{background-color:var(--primary-light,#1976d21a)}.logViewActions{gap:8px;display:flex}.editButton,.deleteIconButton{background:var(--bg-hover,#f5f5f5);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;text-decoration:none;transition:background-color .2s;display:flex}.editButton:hover{background-color:var(--primary-light,#1976d21a)}.deleteIconButton:hover{background-color:#fef2f2}.logViewContent{flex:1}.logViewMeta{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.logViewCategory{align-items:center;gap:6px;font-size:14px;font-weight:500;display:flex}.logViewCategoryIcon{font-size:16px}.logViewDate{color:var(--text-muted,#999);font-size:14px}.logViewTitle{color:var(--text,#333);margin:0 0 16px;font-size:24px;font-weight:600;line-height:1.3}.logViewText{color:var(--text,#333);white-space:pre-wrap;word-wrap:break-word;font-size:16px;line-height:1.7}.logViewTags{border-top:1px solid var(--border,#e0e0e0);flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:20px;display:flex}.logViewTag{background-color:var(--primary-light,#1976d21a);color:var(--primary,#1976d2);border-radius:16px;padding:6px 12px;font-size:14px}.confirmOverlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirmDialog{background:var(--bg-card,#fff);border-radius:16px;width:100%;max-width:320px;padding:24px}.confirmText{color:var(--text,#333);text-align:center;margin:0 0 20px;font-size:16px}.confirmActions{gap:12px;display:flex}.confirmCancel{border:1px solid var(--border,#e0e0e0);background:var(--bg-card,#fff);color:var(--text,#333);cursor:pointer;border-radius:10px;flex:1;padding:12px;font-size:14px}.confirmDelete{color:#fff;cursor:pointer;background-color:#dc2626;border:none;border-radius:10px;flex:1;padding:12px;font-size:14px}.confirmDelete:disabled{opacity:.6;cursor:not-allowed}.settingsPage{padding:16px}.settingsPage .settingsTitle{color:#333;margin-bottom:24px;font-size:24px;font-weight:600}.settingsPage .errorBanner{color:#c62828;background-color:#ffebee;border:1px solid #f44336;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.settingsPage .errorClose{color:#c62828;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px}.settingsPage .settingsSection{background-color:#fff;border-radius:12px;margin-bottom:24px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.settingsPage .sectionHeader{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:16px;display:flex}.settingsPage .sectionTitleRow{align-items:center;gap:8px;display:flex}.settingsPage .sectionIcon{font-size:20px}.settingsPage .sectionTitle{color:#333;font-size:16px;font-weight:600}.settingsPage .sectionContent{padding:16px}.settingsPage .accountCard{background:linear-gradient(135deg,#f8fbff 0%,#fef6ed 100%);border:1px solid #e3e8ef;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.settingsPage .accountIdentity{align-items:center;gap:12px;min-width:0;display:flex}.settingsPage .accountAvatar{object-fit:cover;border-radius:16px;flex:none;width:52px;height:52px}.settingsPage .accountAvatarFallback{color:#fff;background:linear-gradient(135deg,#1976d2 0%,#42a5f5 100%);justify-content:center;align-items:center;font-size:20px;font-weight:700;display:inline-flex}.settingsPage .accountMeta{min-width:0}.settingsPage .accountName{color:#1f2937;font-size:15px;font-weight:700}.settingsPage .accountHandle{color:#64748b;margin-top:4px;font-size:13px}.settingsPage .accountLogoutButton,.settingsPage .accountModeBadge{border-radius:999px;flex:none;padding:10px 16px;font-size:13px;font-weight:700}.settingsPage .accountLogoutButton{color:#fff;cursor:pointer;background:#1f2937;border:none}.settingsPage .accountModeBadge{color:#475569;background:#fff;border:1px solid #dbe4ef}.settingsPage .languageToggle{background-color:#f2f4f7;border-radius:10px;gap:8px;padding:4px;display:inline-flex}.settingsPage .languageButton{color:#445;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;transition:background-color .2s,color .2s}.settingsPage .languageButton.active{color:#fff;background-color:#1976d2}.settingsPage .featureFlagsList{flex-direction:column;gap:12px;display:flex}.settingsPage .featureFlagItem{background-color:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.settingsPage .featureFlagInfo{flex-direction:column;gap:2px;min-width:0;display:flex}.settingsPage .featureFlagTitle{color:#1f2937;font-size:14px;font-weight:600}.settingsPage .featureFlagDesc{color:#6b7280;font-size:12px}.settingsPage .featureFlagToggle{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;min-width:64px;padding:8px 12px;font-size:12px;font-weight:700;transition:all .2s}.settingsPage .featureFlagToggle.active{color:#fff;background-color:#1976d2;border-color:#1976d2}.settingsPage .addButton{color:#fff;cursor:pointer;background-color:#1976d2;border:none;border-radius:8px;justify-content:center;align-items:center;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .2s;display:inline-flex}.settingsPage .addButton:hover{background-color:#1565c0}.settingsPage .categoryFormWrapper{background-color:#f5f5f5;border-radius:8px;margin-bottom:16px;padding:16px}.settingsPage .categoryForm{flex-direction:column;gap:16px;display:flex}.settingsPage .formField{flex-direction:column;gap:8px;display:flex}.settingsPage .formLabel{color:#666;font-size:14px;font-weight:500}.settingsPage .formInput{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:12px;font-size:16px}.settingsPage .formInput:focus{border-color:#1976d2;outline:none}.settingsPage .iconPicker{position:relative}.settingsPage .iconPickerTrigger{cursor:pointer;text-align:left;background-color:#fff;border:1px solid #d6dbe1;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.settingsPage .iconPickerSelected{background:#f4f7fb;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:inline-flex}.settingsPage .iconPickerTriggerText{color:#334155;flex:1;font-size:14px;font-weight:500}.settingsPage .iconPickerArrow{color:#64748b;font-size:12px}.settingsPage .iconPickerDropdown{z-index:20;background:#fff;border:1px solid #d6dbe1;border-radius:10px;padding:10px;position:absolute;top:calc(100% + 8px);left:0;right:0;box-shadow:0 10px 30px #0f172a26}.settingsPage .iconPickerGrid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:8px;max-height:220px;display:grid;overflow-y:auto}.settingsPage .iconOption{cursor:pointer;background-color:#fff;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;transition:border-color .2s;display:flex}.settingsPage .iconOption:hover{border-color:#e0e0e0}.settingsPage .iconOption.selected{background-color:#e3f2fd;border-color:#1976d2}.settingsPage .colorPicker{flex-wrap:wrap;gap:8px;display:flex}.settingsPage .colorOption{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;transition:transform .2s}.settingsPage .colorOption:hover{transform:scale(1.1)}.settingsPage .colorOption.selected{border-color:#333;box-shadow:0 0 0 2px #fff,0 0 0 4px}.settingsPage .formActions{justify-content:flex-end;gap:12px;margin-top:8px;display:flex}.settingsPage .entryTypeToggle{background-color:#f2f4f7;border-radius:10px;gap:8px;padding:4px;display:inline-flex}.settingsPage .entryTypeButton{color:#445;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:14px;font-weight:600;transition:background-color .2s,color .2s}.settingsPage .entryTypeButton.active{color:#fff;background-color:#1976d2}.settingsPage .cancelButton{color:#666;cursor:pointer;background:0 0;border:1px solid #e0e0e0;border-radius:8px;padding:10px 20px;font-size:14px;transition:background-color .2s}.settingsPage .cancelButton:hover{background-color:#f5f5f5}.settingsPage .submitButton{color:#fff;cursor:pointer;background-color:#1976d2;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:background-color .2s}.settingsPage .submitButton:hover:not(:disabled){background-color:#1565c0}.settingsPage .submitButton:disabled{cursor:not-allowed;background-color:#bdbdbd}.settingsPage .habitSettingsList{flex-direction:column;gap:10px;display:flex}.settingsPage .habitSettingsItem{background-color:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.settingsPage .habitSettingsInfo{align-items:center;gap:10px;min-width:0;display:flex}.settingsPage .habitSettingsColor{border-radius:6px;flex-shrink:0;width:10px;height:28px}.settingsPage .habitSettingsText{flex-direction:column;gap:2px;min-width:0;display:flex}.settingsPage .habitSettingsName{color:#111827;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.settingsPage .habitSettingsState{font-size:12px;font-weight:600}.settingsPage .habitSettingsState.active{color:#15803d}.settingsPage .habitSettingsState.inactive{color:#6b7280}.settingsPage .habitSettingsActions{align-items:center;gap:8px;display:flex}.settingsPage .habitActiveToggle{cursor:pointer;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:999px;justify-content:flex-start;align-items:center;width:50px;height:30px;padding:2px;transition:background-color .2s;display:inline-flex}.settingsPage .habitActiveToggleThumb{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;box-shadow:0 1px 2px #0f172a40}.settingsPage .habitActiveToggle.active{background-color:#1976d2;border-color:#1976d2}.settingsPage .habitActiveToggle.active .habitActiveToggleThumb{transform:translate(20px)}.settingsPage .habitActiveToggle:disabled{opacity:.6;cursor:not-allowed}.settingsPage .emptyCategories{text-align:center;color:#999;padding:16px;font-size:14px}.settingsPage .categoriesList{flex-direction:column;gap:8px;display:flex}.settingsPage .categoryItem{background-color:#f5f5f5;border-radius:8px;justify-content:space-between;align-items:center;padding:12px;display:flex}.settingsPage .categoryInfo{align-items:center;gap:12px;display:flex}.settingsPage .categoryIcon{border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.settingsPage .categoryName{color:#333;font-size:16px;font-weight:500}.settingsPage .categoryActions{gap:8px;display:flex}.settingsPage .editButton,.settingsPage .deleteButton{vertical-align:middle;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:16px;line-height:1;transition:background-color .2s;display:inline-flex}.settingsPage .editButton:hover:not(:disabled),.settingsPage .deleteButton:hover:not(:disabled){background-color:#e0e0e0}.settingsPage .editButton:disabled,.settingsPage .deleteButton:disabled{opacity:.5;cursor:not-allowed}.settingsPage a.editButton{color:inherit;text-decoration:none}.settingsPage .confirmDelete,.settingsPage .cancelDelete{cursor:pointer;border-radius:4px;padding:6px 12px;font-size:12px}.settingsPage .confirmDelete{color:#fff;background-color:#f44336;border:none}.settingsPage .confirmDelete:hover{background-color:#d32f2f}.settingsPage .cancelDelete{color:#666;background:0 0;border:1px solid #e0e0e0}.settingsPage .cancelDelete:hover{background-color:#f5f5f5}.settingsPage .aboutInfo{color:#666;font-size:14px;line-height:1.6}.settingsPage .aboutDescription{color:#999}.loginPageShell{background:radial-gradient(circle at 0 0,#ff922b38,#0000 34%),radial-gradient(circle at 100% 100%,#2da2ff2e,#0000 30%),linear-gradient(135deg,#f8f2e8 0%,#f4f6fb 52%,#eef6ff 100%);place-items:center;min-height:100dvh;padding:32px 20px;display:grid;position:relative;overflow:hidden}.loginGlow{filter:blur(64px);opacity:.55;pointer-events:none;border-radius:999px;width:360px;height:360px;position:absolute}.loginGlowLeft{background:#ffa4385c;top:-120px;left:-80px}.loginGlowRight{background:#2794ff47;bottom:-120px;right:-90px}.loginCard{z-index:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffd6;border:1px solid #252e4014;border-radius:28px;gap:24px;width:min(100%,420px);padding:30px;display:grid;position:relative;box-shadow:0 28px 80px #2e3f5c29}.loginTitle{color:#203147;letter-spacing:-.05em;text-align:center;margin:0;font-size:clamp(2rem,8vw,3.4rem);font-weight:800;line-height:1}.telegramWidgetContainer{justify-content:center;min-height:48px;display:flex}@media (width<=640px){.loginPageShell{padding:20px 14px}.loginCard{border-radius:24px;padding:24px 18px}}
