@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);*{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5}:root{--primary-blue:#007aff;--text-primary:#000;--text-secondary:#6b6b6b;--text-tertiary:#999;--background:#fff;--background-secondary:#f5f5f5;--border-light:#e5e5e5;--success:#34c759;--warning:#ff9500;--error:#ff3b30;--font-size-xs:11px;--font-size-sm:13px;--font-size-base:15px;--font-size-lg:17px;--font-size-xl:22px;--font-size-2xl:28px;--font-size-3xl:34px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px}button{border:none;cursor:pointer}button,input{font-family:inherit;outline:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f5f5f5}::-webkit-scrollbar-thumb{background:#c7c7c7;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.container{margin:0 auto;max-width:480px;padding:0 16px}.text-center{text-align:center}.text-primary{color:#000;color:var(--text-primary)}.text-secondary{color:#6b6b6b;color:var(--text-secondary)}.text-tertiary{color:#999;color:var(--text-tertiary)}.mt-sm{margin-top:8px;margin-top:var(--spacing-sm)}.mt-md{margin-top:16px;margin-top:var(--spacing-md)}.mt-lg{margin-top:24px;margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:8px;margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:16px;margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:24px;margin-bottom:var(--spacing-lg)}.auth-page{align-items:center;background:#fff;display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-container{max-width:375px;padding:24px;width:100%}.auth-logo{background:#000;border-radius:20px;height:80px;justify-content:center;margin:0 auto 40px;width:80px}.auth-logo,.auth-logo-circles{align-items:center;display:flex}.auth-logo-circles{flex-direction:column;gap:4px}.auth-logo-circle{background:#fff;border-radius:50%;height:12px;width:12px}.auth-logo-circle.small{height:8px;width:8px}.auth-form{gap:16px}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-label{color:#6b6b6b;font-size:13px;font-weight:400;padding-left:4px}.form-input{background:#f5f5f5;border:none;border-radius:10px;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:15px;outline:none;padding:14px 16px;transition:background .2s;width:100%}.form-input::placeholder{color:#999}.form-input:focus{background:#ebebeb}.auth-button{background:#007aff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:15px;font-weight:600;margin-top:8px;padding:14px;transition:opacity .2s;width:100%}.auth-button:hover{opacity:.9}.auth-button:active{opacity:.8}.auth-button:disabled{cursor:not-allowed;opacity:.5}.auth-footer{color:#6b6b6b;font-size:14px;margin-top:24px;text-align:center}.auth-link{color:#007aff;cursor:pointer;font-weight:500;text-decoration:none}.auth-link:hover{text-decoration:underline}.error-message{background:#ffebee;border:1px solid #ff3b30;border-radius:8px;color:#ff3b30}.error-message,.success-message{font-size:13px;padding:12px 16px;text-align:center}.success-message{background:#e8f5e9;border:1px solid #34c759;border-radius:8px;color:#34c759}@media (max-width:480px){.auth-container{padding:20px}.auth-logo{height:70px;margin-bottom:32px;width:70px}}:root{--nav-bg:#fff;--nav-border:#e5e7eb;--nav-active:#7b61ff;--nav-muted:#9ca3af;--nav-shadow:0 -6px 20px #0000000f}.bottom-nav{background:#fff;background:var(--nav-bg);border-top:1px solid #e5e7eb;border-top:1px solid var(--nav-border);bottom:0;box-shadow:0 -6px 20px #0000000f;box-shadow:var(--nav-shadow);left:0;padding:10px 8px 14px;position:fixed;right:0;z-index:1000}.bottom-nav-items{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:420px}.bottom-nav-item{align-items:center;background:none;border:none;color:#9ca3af;color:var(--nav-muted);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:11px;font-weight:600;gap:4px}.bottom-nav-icon{align-items:center;border-radius:10px;display:flex;height:26px;justify-content:center;transition:all .2s ease;width:26px}.bottom-nav-item.active{color:#7b61ff;color:var(--nav-active)}.bottom-nav-item.active .bottom-nav-icon{background:#7b61ff1f;color:#7b61ff;color:var(--nav-active)}.bottom-nav-label{line-height:1}@supports (padding-bottom:env(safe-area-inset-bottom)){.bottom-nav{padding-bottom:calc(14px + env(safe-area-inset-bottom))}}:root{--primary-soft:#ede9fe;--bg-light:#f7f8fc;--text-main:#111827;--radius-lg:20px;--shadow-soft:0 8px 24px #0000000f}.dashboard-page{background:#f7f8fc;background:var(--bg-light);box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;min-height:100vh;padding:20px 18px 96px}.dashboard-header{align-items:center;display:flex;height:60px;justify-content:space-between;margin-bottom:10px}.dashboard-logo{align-items:center;display:flex;height:100%}.dashboard-logo-img{height:90%;object-fit:contain;width:auto}.dashboard-header-actions{align-items:center;display:flex;gap:12px}.streak-pill{border-radius:999px;color:#fff;font-size:13px;font-weight:700;padding:6px 12px}.streak-pill,.update-today-header-button{background:#7b61ff;background:var(--primary)}.update-today-header-button{align-items:center;border:none;border-radius:14px;box-shadow:0 10px 24px #7b61ff59;cursor:pointer;display:flex;height:44px;justify-content:center;width:44px}.update-today-header-button:disabled{opacity:.6}.dashboard-title{color:#111827;color:var(--text-main);font-size:34px;font-weight:800;line-height:1.2;margin-bottom:8px}.dashboard-subtitle{color:#6b7280;color:var(--text-muted);font-size:16px;line-height:1.5;margin-bottom:24px}.quote-section{background:#fff;border-radius:20px;border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000000f;box-shadow:var(--shadow-soft);margin-bottom:26px;padding:18px}.quote-icon{font-size:22px;margin-bottom:10px}.quote-text{color:#111827;color:var(--text-main);font-size:15px;line-height:1.6}.quote-loading{color:#6b7280;color:var(--text-muted);font-size:14px}.stats-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr;margin-bottom:30px}.stat-card{background:#fff;border-radius:20px;border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000000f;box-shadow:var(--shadow-soft);padding:18px}.stat-icon{font-size:20px;margin-bottom:10px}.stat-value{color:#111827;color:var(--text-main);font-size:28px;font-weight:800;line-height:1}.stat-unit{font-weight:600;margin-left:6px}.stat-label,.stat-unit{color:#6b7280;color:var(--text-muted);font-size:14px}.goals-status-section,.stat-label{margin-top:8px}.section-header{margin-bottom:14px}.section-title{color:#111827;color:var(--text-main);font-size:20px;font-weight:700}.goal-status-card{align-items:center;background:#fff;border-radius:20px;border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000000f;box-shadow:var(--shadow-soft);display:flex;justify-content:space-between;padding:14px}.goal-status-card.completed{background:#ecfdf5}.goal-status-card.partial{background:#fff7ed}.goal-status-card.incomplete{background:#fef2f2}.goal-status-icon{font-size:24px}.goal-status-info{flex:1 1;margin-left:12px}.goal-status-name{color:#111827;color:var(--text-main);font-size:15px;font-weight:700}.goal-status-meta{color:#6b7280;color:var(--text-muted);font-size:13px}.goal-status-badge{align-items:center;border-radius:999px;display:flex;font-size:13px;font-weight:700;gap:6px;padding:6px 12px}.goal-status-badge.completed{background:#d1fae5;color:#047857}.goal-status-badge.partial{background:#ffedd5;color:#9a3412}.goal-status-badge.incomplete{background:#fee2e2;color:#991b1b}.empty-goals-dashboard{background:#fff;border-radius:20px;border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000000f;box-shadow:var(--shadow-soft);padding:40px 20px;text-align:center}.empty-goals-dashboard-icon{font-size:40px;margin-bottom:14px}.empty-goals-dashboard-text{color:#6b7280;color:var(--text-muted);font-size:15px;margin-bottom:18px}.empty-goals-dashboard-button{align-items:center;background:#7b61ff;background:var(--primary);border:none;border-radius:14px;color:#fff;cursor:pointer;display:inline-flex;font-size:15px;font-weight:700;gap:8px;padding:14px 20px}.loading-container{color:#6b7280;color:var(--text-muted);padding:20px}.error-container{padding:20px;text-align:center}.error-retry-button{background:#7b61ff;background:var(--primary);border:none;border-radius:12px;color:#fff;cursor:pointer;font-weight:700;margin-top:14px;padding:12px 18px}.commitment-page{background:#fff;min-height:100vh;padding-bottom:40px}.commitment-header{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;display:flex;gap:12px;padding:12px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.back-button{align-items:center;background:none;border:none;border-radius:8px;color:#007aff;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:opacity .2s}.back-button:hover{background:#f0f0f0;opacity:.7}.back-button:active{opacity:.5}.commitment-header-title{color:#000;flex:1 1;font-size:17px;font-weight:600}.commitment-content{margin:0 auto;max-width:600px;padding:24px 20px}.commitment-date{margin-bottom:32px;padding:16px 0;text-align:center}.date-label{color:#6b6b6b;font-size:13px;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.date-value{color:#000;font-size:20px;font-weight:600}.rating-section{background:#fafafa;border:1px solid #f0f0f0;border-radius:16px;margin-bottom:40px;padding:24px}.section-title{color:#000;font-size:17px;margin-bottom:20px;text-align:center}.rating-stars-container{display:flex;gap:16px;justify-content:center;padding:12px 0}.star-button{background:none;border:none;border-radius:8px;cursor:pointer;padding:8px;transition:all .2s}.star-button:hover{background:#ffd7001a;transform:scale(1.15)}.star-button:active{transform:scale(.95)}.star-icon{color:#e5e5e5;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));height:44px;transition:all .2s;width:44px}.star-icon.filled{color:gold;filter:drop-shadow(0 2px 6px rgba(255,215,0,.4))}.goals-checklist-section{margin-bottom:40px}.goals-checklist{display:flex;flex-direction:column;gap:12px}.goal-item{align-items:center;background:#fff;border:1.5px solid #e5e5e5;border-radius:12px;display:flex;gap:12px;padding:16px;transition:all .2s}.goal-item:hover{border-color:#c7c7c7;box-shadow:0 2px 8px #0000000d}.goal-checkbox-wrapper{align-items:center;display:flex;flex-shrink:0}.goal-checkbox{align-items:center;background:#fff;border:2px solid #c7c7c7;border-radius:6px;cursor:pointer;display:flex;height:24px;justify-content:center;transition:all .2s;width:24px}.goal-checkbox:hover{border-color:#007aff}.goal-checkbox.checked{background:#007aff;border-color:#007aff}.goal-checkbox input[type=checkbox]{display:none}.check-icon{color:#fff;height:16px;width:16px}.goal-info{align-items:center;display:flex;flex:1 1;gap:12px}.goal-icon{flex-shrink:0;font-size:24px}.goal-details{flex:1 1;min-width:0}.goal-name{color:#000;font-size:15px;font-weight:600;margin-bottom:2px}.goal-meta{color:#6b6b6b;font-size:13px}.goal-numeric-input-wrapper{align-items:center;display:flex;flex-shrink:0;gap:8px;margin-left:auto}.goal-numeric-input{background:#fafafa;border:2px solid #e5e5e5;border-radius:8px;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:15px;font-weight:600;outline:none;padding:10px 12px;text-align:center;transition:all .2s;width:80px}.goal-numeric-input:focus{background:#fff;border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.goal-numeric-input:hover{border-color:#c7c7c7}.goal-unit{color:#6b6b6b;font-size:13px;font-weight:500;min-width:50px}.notes-section{margin-bottom:32px}.notes-label{color:#000;display:block;font-size:15px;font-weight:600;margin-bottom:8px}.notes-subtext{color:#6b6b6b;font-size:13px;margin-bottom:12px}.notes-textarea{background:#fafafa;border:2px solid #e5e5e5;border-radius:12px;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:15px;line-height:1.6;min-height:140px;outline:none;padding:16px;resize:vertical;transition:all .2s;width:100%}.notes-textarea::placeholder{color:#999}.notes-textarea:focus{background:#fff;border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.notes-textarea:hover{border-color:#c7c7c7}.save-button{background:#007aff;border:none;border-radius:12px;box-shadow:0 4px 12px #007aff4d;color:#fff;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:17px;font-weight:600;margin-bottom:16px;padding:16px;transition:all .2s;width:100%}.save-button:hover{background:#0056d6;box-shadow:0 6px 16px #007aff66;transform:translateY(-1px)}.save-button:active{box-shadow:0 2px 8px #007aff4d;transform:translateY(0)}.save-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.5;transform:none}.success-banner{align-items:center;animation:slideDown .3s ease-out;background:#34c759;border-radius:10px;box-shadow:0 8px 24px #34c75966;color:#fff;display:flex;font-size:15px;font-weight:600;gap:8px;left:50%;padding:14px 28px;position:fixed;top:20px;transform:translateX(-50%);z-index:2000}.empty-goals-state{background:#fafafa;border:2px dashed #e5e5e5;border-radius:16px;color:#6b6b6b;padding:60px 20px;text-align:center}.empty-goals-icon{opacity:.8}.empty-goals-text{line-height:1.6;margin-bottom:20px}.empty-goals-button{align-items:center;background:#007aff;border:none;border-radius:10px;box-shadow:0 4px 12px #007aff4d;color:#fff;cursor:pointer;display:inline-flex;font-size:15px;font-weight:600;gap:8px;padding:12px 24px;text-decoration:none;transition:all .2s}.empty-goals-button:hover{background:#0056d6;box-shadow:0 6px 16px #007aff66;transform:translateY(-2px)}.empty-goals-button:active{transform:translateY(0)}.loading-container{align-items:center;color:#6b6b6b;display:flex;font-size:15px;justify-content:center;min-height:300px}@media (max-width:480px){.commitment-content{padding:20px 16px}.rating-stars-container{gap:12px}.star-icon{height:40px;width:40px}.goal-numeric-input{font-size:14px;width:70px}.notes-textarea{min-height:120px}.date-value{font-size:18px}.goals-checklist-section,.rating-section{margin-bottom:32px}}@media (max-width:360px){.star-icon{height:36px;width:36px}.rating-stars-container{gap:8px}.goal-numeric-input{padding:8px 10px;width:65px}}.goal-item{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.back-button:focus-visible,.save-button:focus-visible,.star-button:focus-visible{outline:3px solid #007aff;outline-offset:2px}.goal-checkbox:focus-visible{box-shadow:0 0 0 3px #007aff4d}.goals-page{background:#fff;min-height:100vh;padding-bottom:80px}.goals-header{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:12px 20px}.goals-header-left{align-items:center;display:flex;gap:12px}.goals-header-title{color:#000;font-size:17px;font-weight:600}.add-goal-icon-button{align-items:center;background:none;border:none;color:#007aff;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:opacity .2s}.add-goal-icon-button:hover{opacity:.7}.goals-content{margin:0 auto;max-width:480px;padding:24px 20px}.goals-subtitle{color:#6b6b6b;font-size:13px;margin-bottom:24px;padding:0 4px}.goals-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.goal-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;padding:16px;transition:border-color .2s}.goal-card:hover{border-color:#c7c7c7}.goal-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.goal-card-main{align-items:center;display:flex;flex:1 1;gap:12px}.goal-card-icon{flex-shrink:0;font-size:24px}.goal-card-info{flex:1 1;min-width:0}.goal-card-name{color:#000;font-size:15px;font-weight:600;margin-bottom:2px}.goal-card-meta{color:#6b6b6b;font-size:13px}.toggle-switch{flex-shrink:0;height:31px;position:relative;width:51px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#e5e5e5;border-radius:31px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:2px;box-shadow:0 2px 4px #0000001a;content:"";height:27px;left:2px;position:absolute;transition:.3s;width:27px}.toggle-switch input:checked+.toggle-slider{background-color:#34c759}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(20px)}.goal-card-actions{border-top:1px solid #f0f0f0;display:flex;gap:8px;margin-top:12px;padding-top:12px}.goal-action-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:13px;font-weight:500;gap:6px;justify-content:center;padding:8px 12px;transition:opacity .2s}.goal-action-button:hover{opacity:.8}.goal-action-button.edit{background:#f0f0f0;color:#007aff}.goal-action-button.remove{background:#ffebee;color:#ff3b30}.add-goal-section{margin-top:32px}.add-goal-button{align-items:center;background:#007aff;border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:17px;font-weight:600;gap:8px;justify-content:center;padding:16px;transition:opacity .2s;width:100%}.add-goal-button:hover{opacity:.9}.add-goal-button:active{opacity:.8}.modal-overlay{align-items:flex-end;animation:fadeIn .2s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.modal-content{animation:slideUp .3s ease-out;background:#fff;border-radius:16px 16px 0 0;max-height:90vh;max-width:480px;overflow-y:auto;width:100%}.modal-header{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:20px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-title{color:#000;font-size:20px;font-weight:600}.modal-close-button{align-items:center;background:none;border:none;color:#6b6b6b;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:opacity .2s}.modal-close-button:hover{opacity:.7}.modal-body{padding:24px 20px}.form-field{margin-bottom:20px}.form-field-label{color:#000;display:block;font-size:13px;font-weight:500;margin-bottom:8px}.form-field-hint{color:#6b6b6b;font-size:12px;margin-top:4px}.form-text-input{background:#fff;border:1px solid #e5e5e5;border-radius:10px;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:15px;outline:none;padding:12px 16px;transition:border-color .2s;width:100%}.form-text-input:focus{border-color:#007aff}.form-text-input::placeholder{color:#999}.type-selector{display:flex;gap:12px}.type-option{background:#fff;border:2px solid #e5e5e5;border-radius:10px;cursor:pointer;flex:1 1;padding:12px;text-align:center;transition:all .2s}.type-option:hover{border-color:#c7c7c7}.type-option.selected{background:#f0f8ff;border-color:#007aff}.type-option-label{color:#000;font-size:15px;font-weight:600;margin-bottom:4px}.type-option-desc{color:#6b6b6b;font-size:12px}.numeric-fields{display:flex;gap:12px}.numeric-fields .form-field{flex:1 1}.category-select{background:#fff;border:1px solid #e5e5e5;border-radius:10px;color:#000;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:15px;outline:none;padding:12px 16px;transition:border-color .2s;width:100%}.category-select:focus{border-color:#007aff}.icon-input{background:#fff;border:1px solid #e5e5e5;border-radius:10px;font-size:24px;outline:none;padding:12px 16px;text-align:center;transition:border-color .2s;width:100%}.icon-input:focus{border-color:#007aff}.form-submit-button{background:#007aff;border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:17px;font-weight:600;margin-top:8px;padding:16px;transition:opacity .2s;width:100%}.form-submit-button:hover{opacity:.9}.form-submit-button:active{opacity:.8}.form-submit-button:disabled{cursor:not-allowed;opacity:.5}.empty-goals{padding:60px 20px;text-align:center}.empty-goals-icon{font-size:64px;margin-bottom:16px}.empty-goals-title{color:#000;font-size:20px;font-weight:600;margin-bottom:8px}.empty-goals-text{color:#6b6b6b;font-size:15px;line-height:1.4;margin-bottom:24px}@media (min-width:640px){.modal-content{border-radius:16px;margin:40px;max-height:calc(100vh - 80px)}}@media (max-width:480px){.goals-content{padding:20px 16px}}.emoji-picker-container{position:relative;width:100%}.emoji-input-wrapper{align-items:center;display:flex;gap:12px}.emoji-display-button{align-items:center;background:#fff;border:2px solid #e5e5e5;border-radius:12px;cursor:pointer;display:flex;flex-shrink:0;height:80px;justify-content:center;transition:all .2s;width:80px}.emoji-display-button:hover{background:#f8f8f8;border-color:#007aff}.emoji-display-button:active{transform:scale(.95)}.emoji-display{font-size:40px;line-height:1}.emoji-text-input{background:#fff;border:1px solid #e5e5e5;border-radius:10px;color:#000;flex:1 1;font-size:15px;outline:none;padding:12px 16px;transition:border-color .2s}.emoji-text-input:focus{border-color:#007aff}.emoji-text-input::placeholder{color:#999}.emoji-picker-dropdown{animation:slideDown .2s ease-out;background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:0 8px 24px #00000026;left:0;max-height:400px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}.emoji-picker-header{background:#fff;border-bottom:1px solid #f0f0f0;padding:12px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.emoji-picker-title{color:#000;font-size:13px;font-weight:600}.emoji-picker-content{padding:8px}.emoji-category{margin-bottom:16px}.emoji-category:last-child{margin-bottom:8px}.emoji-category-title{color:#6b6b6b;font-size:12px;font-weight:600;letter-spacing:.5px;padding:8px 8px 4px;text-transform:uppercase}.emoji-grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));padding:4px}.emoji-option{align-items:center;background:#0000;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:24px;height:44px;justify-content:center;padding:0;transition:all .15s;width:44px}.emoji-option:hover{background:#f0f0f0;transform:scale(1.1)}.emoji-option:active{transform:scale(.95)}.emoji-option.selected{background:#e3f2ff;border:2px solid #007aff}.emoji-picker-dropdown::-webkit-scrollbar{width:8px}.emoji-picker-dropdown::-webkit-scrollbar-track{background:#f5f5f5;border-radius:0 12px 12px 0}.emoji-picker-dropdown::-webkit-scrollbar-thumb{background:#c7c7c7;border-radius:4px}.emoji-picker-dropdown::-webkit-scrollbar-thumb:hover{background:#a0a0a0}@media (max-width:480px){.emoji-picker-dropdown{max-height:300px}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}.emoji-option{font-size:22px;height:40px;width:40px}}.bottom-navigation,.expense-item,.money-date-header,.money-page{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Inter,system-ui,sans-serif}.money-header{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:16px 20px}.money-title{color:#111;font-size:20px;font-weight:600}.money-add-button{align-items:center;background:#7b61ff;border:none;border-radius:12px;color:#fff;display:flex;height:40px;justify-content:center;width:40px}.money-date-header{background:#fafafa;border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:14px 20px}.date-nav-button{background:none;border:none;color:#555;padding:6px}.money-date-center{align-items:center;display:flex;gap:8px}.money-date-text{color:#111;font-size:15px;font-weight:500}.calendar-button{background:none;border:none;color:#7b61ff;padding:4px}.money-content{padding:16px 16px 100px}.expense-list{display:flex;flex-direction:column;gap:12px}.expense-item{border:1px solid #ededed;gap:12px;padding:14px}.expense-item-icon{align-items:center;background:#f4f2ff;border-radius:12px;display:flex;font-size:20px;height:40px;justify-content:center;width:40px}.expense-item-info{flex:1 1;min-width:0}.expense-item-title{color:#111;font-size:15px;font-weight:500;margin-bottom:2px}.expense-item-category{color:#777;line-height:1.3}.expense-item-amount{color:#111;font-size:15px}.empty-expenses{padding:60px 20px;text-align:center}.empty-expenses-icon{font-size:48px;margin-bottom:12px}.empty-expenses-text{color:#666;font-size:14px}.bottom-navigation{border-top:1px solid #eaeaea;height:72px}.nav-item{color:#999;flex:1 1;font-weight:500;justify-content:center}.nav-item.active{color:#7b61ff}@supports (padding-bottom:env(safe-area-inset-bottom)){.bottom-navigation{height:calc(72px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}}.expense-form-card{background:#fff;border:1px solid #e5e5e5;border-radius:14px;margin-bottom:16px;padding:16px}.expense-form-card-header{align-items:center;color:#000;display:flex;font-size:14px;font-weight:600;justify-content:space-between;margin-bottom:12px}.remove-expense-button{background:none;border:none;color:#ff3b30;cursor:pointer;font-size:18px;padding:4px}.remove-expense-button:hover{opacity:.7}.add-another-expense-button{align-items:center;background:#f5f5f7;border:1px dashed #c7c7cc;border-radius:12px;color:#007aff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;justify-content:center;margin:8px 0 16px;padding:12px;width:100%}.add-another-expense-button:hover{background:#efeff4}.expense-item{align-items:center;background:#fff;border:1px solid #e5e5e5;border-radius:14px;display:flex;justify-content:space-between;padding:14px 16px}.expense-item-left{align-items:center;display:flex;gap:12px}.expense-item-emoji{align-items:center;background:#f5f5f7;border-radius:10px;display:flex;font-size:22px;height:36px;justify-content:center;width:36px}.expense-item-info{display:flex;flex-direction:column}.expense-item-name{color:#000;font-size:15px;font-weight:600}.expense-item-category{color:#6b6b6b;font-size:12px}.expense-item-amount{color:#000;font-size:16px;font-weight:600}.expense-item-note{color:#6b6b6b;font-size:12px;margin-top:4px}.money-date-header{align-items:center;display:flex;gap:16px;justify-content:center;padding:12px 20px}.money-date-button{background:none;border:none;color:#007aff;cursor:pointer;padding:8px}.money-date-label{color:#000;font-size:15px;font-weight:600}.bottom-navigation{background:#fff;border-top:1px solid #e5e5e5;bottom:0;height:64px;justify-content:space-around;left:0;position:fixed;right:0;z-index:1000}.bottom-navigation,.nav-item{align-items:center;display:flex}.nav-item{background:none;border:none;color:#8e8e93;cursor:pointer;flex-direction:column;font-size:11px;gap:4px}.nav-item.active{color:#007aff}.nav-icon{stroke-width:2}:root{--primary:#7b61ff;--primary-soft:#f3f0ff;--text-main:#0f172a;--text-muted:#6b7280;--text-light:#9ca3af;--bg-main:#fcf8f7;--bg-card:#fff;--border-light:#edeef2;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--shadow-soft:0 6px 18px #0f172a0f;--space-xs:6px;--space-sm:10px;--space-md:16px;--space-lg:24px}*{-webkit-tap-highlight-color:transparent;box-sizing:border-box}body,html{background:#fcf8f7;background:var(--bg-main);color:#0f172a;color:var(--text-main);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0;padding:0}.app-page{min-height:100vh;padding-bottom:88px}.app-card{background:#fff;background:var(--bg-card);border-radius:18px;border-radius:var(--radius-lg);box-shadow:0 6px 18px #0f172a0f;box-shadow:var(--shadow-soft);padding:24px;padding:var(--space-lg)}.app-title{font-size:22px;font-weight:700}.app-subtitle{color:#6b7280;color:var(--text-muted);font-size:14px;margin-top:4px}.section-title{font-size:16px;font-weight:600;margin-bottom:10px;margin-bottom:var(--space-sm)}.insights-page{background:var(--bg-main);min-height:100vh;padding-bottom:90px}.insights-header{align-items:center;display:flex;gap:12px;padding:20px 16px 12px}.insights-back-button{background:none;border:none;color:var(--text-main);cursor:pointer;padding:6px}.insights-title{font-size:22px;font-weight:700}.insights-subtitle{color:var(--text-muted);font-size:14px;margin-top:2px}.insights-tabs{border-bottom:1px solid var(--border-light);display:flex;justify-content:space-around;padding:12px 16px 0}.insights-tab{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:15px;font-weight:500;padding:10px 4px;position:relative}.insights-tab.active{color:var(--primary);font-weight:600}.insights-tab.active:after{background:var(--primary);border-radius:3px;bottom:-1px;content:"";height:3px;left:0;position:absolute;width:100%}.insights-content{display:flex;flex-direction:column;gap:16px;padding:20px 16px}.mi-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:18px}.mi-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.mi-stat-row{align-items:center;display:flex;justify-content:space-between}.mi-title{color:var(--text-muted);font-size:13px}.mi-value{color:var(--primary);font-size:22px;font-weight:700;margin-top:4px}.mi-context{color:var(--text-light);font-size:12px;margin-top:2px}.mi-icon{align-items:center;background:var(--primary-soft);border-radius:50%;color:var(--primary);display:flex;height:36px;justify-content:center;width:36px}.mi-highlight{font-size:16px;font-weight:600;margin-top:6px}.budget-ring-wrapper{align-items:center;display:flex;justify-content:center;margin:20px 0;position:relative}.budget-ring-center{position:absolute;text-align:center}.budget-ring-percent{font-size:32px;font-weight:700;line-height:1}.budget-ring-label{color:var(--text-muted);font-size:12px;font-weight:500;margin-top:4px}.budget-ring-amount{color:var(--text-light);font-size:13px;font-weight:500;margin-top:6px}.budget-ring-stats{border-top:1px solid var(--border-light);display:flex;justify-content:space-around;margin-top:16px;padding-top:16px}.budget-ring-stat{align-items:center;display:flex;flex-direction:column;gap:4px}.budget-stat-label{color:var(--text-muted);font-size:12px}.budget-stat-value{color:var(--text-main);font-size:18px;font-weight:700}.budget-alert{align-items:center;border-left:4px solid;border-radius:var(--radius-lg);display:flex;gap:12px;padding:14px 16px}.budget-alert-success{background:#e8f5e9;border-left-color:#34c759}.budget-alert-warning{background:#fff8e1;border-left-color:#ffb020}.budget-alert-danger{background:#ffebee;border-left-color:#ff3b30}.budget-alert-icon{flex-shrink:0;font-size:24px}.budget-alert-content{flex:1 1}.budget-alert-title{font-size:15px;font-weight:600;margin-bottom:2px}.budget-alert-success .budget-alert-title{color:#2e7d32}.budget-alert-warning .budget-alert-title{color:#f57c00}.budget-alert-danger .budget-alert-title{color:#c62828}.budget-alert-context{color:var(--text-light);font-size:13px}.heatmap-row{display:flex;gap:10px;margin-top:12px}.heatmap-cell{border-radius:8px;height:28px;width:28px}.donut-wrapper{display:flex;justify-content:center;margin:16px 0;position:relative}.donut-center{font-size:20px;font-weight:700;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.donut-center span{color:var(--text-muted);display:block;font-size:12px;font-weight:500;margin-top:2px}.donut-legend{display:flex;flex-direction:column;gap:8px;margin-top:12px}.legend-row{align-items:center;display:flex;font-size:14px;gap:8px}.legend-dot{border-radius:50%;height:10px;width:10px}.bar-chart{align-items:flex-end;height:160px;justify-content:space-between;margin-top:16px;padding:0 4px}.bar-chart,.bar-col{display:flex;gap:8px}.bar-col{align-items:center;flex:1 1;flex-direction:column;min-width:0}.bar{background:linear-gradient(180deg,#9f8cff,#7b61ff);border-radius:6px 6px 0 0;box-shadow:0 2px 8px #7b61ff4d;transition:height .3s ease;width:100%}.bar-label{color:var(--text-light);font-size:11px;font-weight:500;margin-top:4px;text-align:center}.completion-ring-wrapper{align-items:center;display:flex;justify-content:center;margin:20px 0;position:relative}.completion-ring-center{position:absolute;text-align:center}.completion-ring-percent{color:var(--primary);font-size:32px;font-weight:700;line-height:1}.completion-ring-label{color:var(--text-muted);font-size:12px;font-weight:500;margin-top:4px}.completion-ring-stats{border-top:1px solid var(--border-light);display:flex;justify-content:space-around;margin-top:16px;padding-top:16px}.completion-ring-stat{align-items:center;display:flex;flex-direction:column;gap:4px}.completion-stat-label{color:var(--text-muted);font-size:12px}.completion-stat-value{color:var(--text-main);font-size:18px;font-weight:700}.performance-alert{align-items:center;background:var(--bg-card);border-left:4px solid;border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);display:flex;gap:12px;padding:14px 16px}.performance-alert-success{background:#e8f5e9;border-left-color:#34c759}.performance-alert-warning{background:#fff8e1;border-left-color:#ffb020}.performance-alert-info{background:#e3f2fd;border-left-color:#007aff}.performance-alert-icon{flex-shrink:0;font-size:24px}.performance-alert-content{flex:1 1}.performance-alert-title{color:var(--text-main);font-size:15px;font-weight:600;margin-bottom:2px}.performance-alert-context{color:var(--text-light);font-size:13px}.goal-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.goal-stat-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:16px}.goal-stat-title{color:var(--text-muted);font-size:13px;margin-bottom:8px}.goal-stat-value{color:var(--primary);font-size:24px;font-weight:700}.goal-stat-context{color:var(--text-light);font-size:12px;margin-top:4px}.habit-highlights-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.habit-card-best,.habit-card-worst{overflow:hidden;position:relative;text-align:center}.habit-card-best:before{background:#34c759}.habit-card-best:before,.habit-card-worst:before{content:"";height:3px;left:0;position:absolute;top:0;width:100%}.habit-card-worst:before{background:#ff3b30}.habit-emoji{font-size:32px;margin-bottom:8px}.habit-label{font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.habit-card-best .habit-label{color:#34c759}.habit-card-worst .habit-label{color:#ff3b30}.habit-name{color:var(--text-main);font-size:15px;font-weight:600;margin-bottom:4px}.habit-streak{color:var(--text-light);font-size:12px}.goal-performance-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}.goal-perf-item{background:var(--bg-main);border-radius:var(--radius-md);padding:14px}.goal-perf-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.goal-perf-name{color:var(--text-main);font-size:15px;font-weight:600}.goal-perf-badge{border-radius:12px;font-size:14px;font-weight:700;padding:4px 10px}.goal-perf-high{background:#e8f5e9;color:#2e7d32}.goal-perf-medium{background:#fff8e1;color:#f57c00}.goal-perf-low{background:#ffebee;color:#c62828}.goal-perf-stats{color:var(--text-light);display:flex;font-size:13px;gap:12px;margin-bottom:10px}.goal-perf-streak{color:#ff6b35;font-weight:500}.goal-perf-bar{background:#f0f0f0;border-radius:3px;height:6px;overflow:hidden;width:100%}.goal-perf-fill{border-radius:3px;height:100%;transition:width .3s ease}.goal-perf-fill.goal-perf-high{background:#34c759}.goal-perf-fill.goal-perf-medium{background:#ffb020}.goal-perf-fill.goal-perf-low{background:#ff3b30}.goal-week-label{color:var(--primary);font-size:13px;font-weight:600;margin-bottom:14px;margin-top:6px}.goal-mini-bars{display:flex;gap:8px;justify-content:space-between}.goal-mini-col{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:6px}.goal-mini-bar{border-radius:6px;height:50px;transition:all .3s ease;width:100%}.goal-mini-bar.completed{background:linear-gradient(180deg,#34c759,#28a745);box-shadow:0 2px 6px #34c7594d}.goal-mini-bar.incomplete{background:#f0f0f0;border:2px dashed #d0d0d0}.goal-mini-label{color:var(--text-light);font-size:11px;font-weight:500}.loading{color:var(--text-muted);font-size:15px;padding:40px 20px;text-align:center}.profile-page{background:#fff;min-height:100vh;padding-bottom:80px}.profile-header{border-bottom:1px solid #f0f0f0;padding:16px 20px;text-align:center}.profile-header-title{color:#000;font-size:20px;font-weight:600}.profile-content{margin:0 auto;max-width:480px;padding:32px 20px}.profile-info-section{margin-bottom:40px;text-align:center}.profile-avatar-wrapper{display:inline-block;margin-bottom:16px;position:relative}.profile-avatar{border:4px solid #f0f0f0;border-radius:50%;height:120px;object-fit:cover;width:120px}.profile-avatar-edit{align-items:center;background:#fff;border:2px solid #f0f0f0;border-radius:50%;bottom:4px;cursor:pointer;display:flex;height:32px;justify-content:center;position:absolute;right:4px;transition:all .2s;width:32px}.profile-avatar-edit:hover{background:#f8f8f8;border-color:#007aff}.profile-name{color:#000;font-size:24px;font-weight:700;margin-bottom:4px}.profile-email{color:#6b6b6b;font-size:15px}.profile-settings-list{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.profile-setting-item{align-items:center;background:#fafafa;border:1px solid #f0f0f0;border-radius:14px;cursor:pointer;display:flex;gap:16px;padding:18px 16px;transition:all .2s}.profile-setting-item:hover{background:#f5f5f5;border-color:#e5e5e5}.profile-setting-item:active{transform:scale(.98)}.profile-setting-icon{align-items:center;background:#fff;border-radius:12px;display:flex;flex-shrink:0;font-size:24px;height:48px;justify-content:center;width:48px}.profile-setting-content{flex:1 1;min-width:0;text-align:left}.profile-setting-title{color:#000;font-size:16px;font-weight:600;margin-bottom:4px}.profile-setting-subtitle{color:#6b6b6b;font-size:13px}.budget-subtitle{color:#04cb00;font-size:13px;font-weight:600}.profile-setting-next-date{color:#007aff;font-size:12px;font-weight:500;margin-top:4px}.profile-logout-section{margin-top:40px}.profile-logout-button{align-items:center;background:#ffebee;border:1px solid #ffd6d9;border-radius:14px;cursor:pointer;display:flex;gap:16px;padding:18px 16px;transition:all .2s;width:100%}.profile-logout-button:hover{background:#ffcdd2;border-color:#ffbec2}.profile-logout-button:active{transform:scale(.98)}.profile-logout-icon{align-items:center;background:#fff;border-radius:12px;display:flex;flex-shrink:0;font-size:24px;height:48px;justify-content:center;width:48px}.profile-logout-title{color:#ff3b30;font-size:16px;font-weight:600}.profile-modal-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.profile-modal-content{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;max-width:400px;padding:24px;width:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.profile-modal-header{margin-bottom:20px}.profile-modal-title{color:#000;font-size:20px;font-weight:600;margin-bottom:8px}.profile-modal-subtitle{color:#6b6b6b;font-size:14px;line-height:1.4}.profile-modal-body{margin-bottom:24px}.profile-modal-input-group{margin-bottom:16px}.profile-modal-label{color:#000;display:block;font-size:13px;font-weight:500;margin-bottom:8px}.profile-modal-input{background:#fafafa;border:1px solid #e5e5e5;border-radius:10px;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:15px;outline:none;padding:14px 16px;transition:all .2s;width:100%}.profile-modal-input:focus{background:#fff;border-color:#007aff}select.profile-modal-input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23666' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;cursor:pointer;padding-right:36px}.profile-modal-actions{display:flex;gap:12px}.profile-modal-button{border:none;border-radius:10px;cursor:pointer;flex:1 1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu;font-size:15px;font-weight:600;padding:14px;transition:all .2s}.profile-modal-button.cancel{background:#f0f0f0;color:#000}.profile-modal-button.cancel:hover{background:#e5e5e5}.profile-modal-button.save{background:#007aff;color:#fff}.profile-modal-button.save:hover{background:#0056d6}.profile-modal-button:active{transform:scale(.98)}.profile-modal-button:disabled{cursor:not-allowed;opacity:.5}.profile-success-message{animation:slideDown .3s ease-out;background:#34c759;border-radius:10px;box-shadow:0 8px 24px #34c75966;color:#fff;font-size:15px;font-weight:600;left:50%;padding:14px 28px;position:fixed;top:20px;transform:translateX(-50%);z-index:3000}@keyframes slideDown{0%{opacity:0;transform:translateX(-50%) translateY(-30px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (max-width:480px){.profile-content{padding:24px 16px}.profile-avatar{height:100px;width:100px}.profile-name{font-size:22px}.profile-modal-content{padding:20px}}
/*# sourceMappingURL=main.2a218e4d.css.map*/