body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app{flex-direction:column;margin:0 auto;max-width:480px;min-height:100vh;padding-bottom:80px;position:relative}.app,.top-bar{background-color:#fff;display:flex}.top-bar{align-items:center;border-bottom:1px solid #e0e0e0;gap:15px;justify-content:space-between;padding:15px 20px}.profile-section{position:relative}.profile-btn,.profile-section{align-items:center;display:flex}.profile-btn{background:none;border:none;border-radius:10px;cursor:pointer;gap:10px;padding:5px;transition:background-color .2s}.profile-btn:hover{background-color:#f5f5f5}.profile-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;font-size:16px;font-weight:600;height:36px;justify-content:center;width:36px}.profile-name{color:#333;font-size:14px;font-weight:500;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu{animation:slideDown .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;left:0;margin-top:8px;min-width:200px;overflow:hidden;position:absolute;top:100%;z-index:1000}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.profile-menu-item{background:none;border:none;cursor:default;display:flex;flex-direction:column;gap:4px;padding:12px 16px;text-align:left;width:100%}.profile-info{background-color:#f8f8f8}.profile-info strong{color:#333;font-size:14px}.profile-info span{color:#666;font-size:12px}.profile-menu-divider{background-color:#e0e0e0;height:1px}.profile-menu-action{align-items:center;color:#333;cursor:pointer;flex-direction:row;font-size:14px;gap:8px;transition:background-color .2s}.profile-menu-action:hover{background-color:#f5f5f5}.logout-action{color:#c33}.logout-action:hover{background-color:#fee}.add-btn,.logout-btn,.menu-btn{background:none;border:none;color:#00ff7f;cursor:pointer;font-size:24px;padding:5px 10px;transition:opacity .2s}.add-btn:hover,.logout-btn:hover,.menu-btn:hover{opacity:.7}.date-section{display:flex;flex:1 1;flex-direction:column;gap:8px;padding:0 15px;text-align:center}.date-text{color:#333;font-size:14px;font-weight:500;margin-bottom:8px}.progress-bar{background-color:#e0e0e0;border-radius:3px;height:6px;overflow:hidden;width:100%}.progress-fill{background-color:#00ff7f;height:100%;transition:width .3s ease}.days-nav{background-color:#fff;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-around;padding:12px 10px}.day-btn{background:none;border:none;border-radius:5px;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:8px 12px;transition:all .2s}.day-btn.active{background-color:#00ff7f;color:#fff}.day-btn:hover:not(.active){background-color:#f0f0f0}.categories-section{align-items:center;background-color:#fff;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:15px 20px}.categories-buttons{display:flex;gap:8px}.category-btn{background-color:#f0f0f0;border:none;border-radius:15px;color:#333;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s}.category-btn.active{color:#000}.category-btn.active,.category-btn:hover{background-color:#e0e0e0}.stats{display:flex;gap:10px}.stat-item{background-color:#e8e8e8;border-radius:8px;color:#666;font-size:11px;font-weight:500;line-height:1.3;padding:8px 12px;text-align:center}.categories-mobile{margin-bottom:10px;position:relative;width:100%}.category-toggle{align-items:center;background-color:#f8f8f8;border:1px solid #e0e0e0;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:14px;font-weight:500;justify-content:space-between;padding:10px 15px;width:100%}.category-toggle .arrow{color:#888;font-size:10px}.category-dropdown{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #0000001a;left:0;margin-top:4px;overflow:hidden;position:absolute;top:100%;width:100%;z-index:100}.dropdown-item{border-bottom:1px solid #f0f0f0;color:#333;cursor:pointer;font-size:14px;padding:12px 15px}.dropdown-item:last-child{border-bottom:none}.dropdown-item.active{background-color:#f0fff4;color:#00ff7f;font-weight:500}.more-categories-wrapper{display:flex;position:relative}.more-dropdown{left:auto;min-width:150px;right:0}.more-btn.active{background-color:#00ff7f;color:#fff}.mobile-only{display:none}.habits-container{flex:1 1;overflow-y:auto;padding:15px 20px}.habit-row{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.habit-name{word-wrap:break-word;color:#333;font-size:14px;font-weight:500;width:100%}.habit-row-content{align-items:center;display:flex;gap:10px;width:100%}.habit-checks{display:flex;flex:1 1;gap:4px;justify-content:space-between}.check-box{background-color:#d0d0d0;border:1px solid silver;border-radius:6px;cursor:pointer;flex:1 1;height:32px;min-width:0;padding:0;transition:all .2s}.check-box.checked{background-color:#00ff7f;border-color:#00ff7f}.check-box.missed{background-color:#a0a0a0;opacity:.6}.check-box:disabled{cursor:not-allowed;opacity:.5}.check-box.missed:not(:disabled){cursor:pointer}.check-box.today{border:1px solid #666}.day-col.today{color:#000;font-weight:800}.check-box:hover{opacity:.8}.check-box:hover.missed:disabled{opacity:.6}.habit-count{background-color:#00ff7f;border-radius:10px;box-shadow:0 1px 3px #0000001a;color:#fff;font-size:15px;font-weight:800;min-width:40px;padding:6px 10px;text-align:center}.bottom-nav{background-color:#e8e8e8;border-top:1px solid #d0d0d0;bottom:0;display:flex;justify-content:space-around;left:50%;max-width:480px;padding:10px 0;position:fixed;transform:translateX(-50%);width:100%}.nav-item{align-items:center;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;padding:5px 10px;position:relative;transition:all .2s}.nav-item.active .nav-icon{background-color:#00ff7f;border-radius:8px;color:#00ff7f;padding:8px}.nav-item.active .nav-label{color:#00ff7f}.nav-item.disabled{cursor:not-allowed;opacity:.4;position:relative}.nav-item.disabled:after{background-color:red;content:"";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) rotate(-45deg);width:100%}.nav-icon{color:#888;font-size:24px;margin-bottom:4px;transition:all .2s}.nav-label{color:#666;font-size:10px;text-align:center;transition:all .2s}.nav-item:hover:not(.disabled) .nav-icon,.nav-item:hover:not(.disabled) .nav-label{color:#00ff7f}@media (max-width:480px){.app{max-width:100%}.desktop-only{display:none!important}.mobile-only{display:block}.bottom-nav{max-width:100%}.habit-name{font-size:13px}.check-box{height:28px}.categories-buttons{flex-wrap:wrap}.profile-name{display:none}.date-text{font-size:12px}}@media (max-width:360px){.check-box{height:24px}.habit-count{font-size:12px;min-width:30px;padding:4px 8px}.day-btn{font-size:12px;padding:6px 8px}}.days-header{align-items:center;display:flex;gap:10px;margin-bottom:5px;padding:15px 20px 5px}.days-placeholder{display:none}.days-cols{display:flex;flex:1 1;justify-content:space-between}.day-col{color:#333;flex:1 1;font-size:13px;font-weight:600;text-align:center}.days-placeholder-end{min-width:35px}.loading-container{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #e0e0e0;border-radius:50%;border-top-color:#00ff7f;height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.loading-container p{color:#666;font-size:16px}.modal-overlay{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-height:90vh;max-width:400px;overflow-y:auto;padding:24px;width:90%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.modal-header h2{color:#333;font-size:20px;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;font-size:32px;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s;width:32px}.modal-close:hover{background-color:#f5f5f5;color:#666}.habit-form{display:flex;flex-direction:column;gap:20px}.form-input,.form-select{background-color:#fafafa;border:1px solid #e0e0e0;border-radius:8px;color:#333;font-family:inherit;font-size:14px;padding:12px 16px;transition:all .2s}.form-input:focus,.form-select:focus{background-color:#fff;border-color:#00ff7f;box-shadow:0 0 0 3px #00ff7f1a;outline:none}.category-input-wrapper{align-items:center;display:flex;gap:10px}.category-input-wrapper .form-select{flex:1 1}.add-category-inline-btn{align-items:center;background-color:#f0f0f0;border:1px solid #e0e0e0;border-radius:8px;color:#666;cursor:pointer;display:flex;font-size:24px;height:42px;justify-content:center;transition:all .2s;width:42px}.add-category-inline-btn:hover{background-color:#e0e0e0;color:#333}.inline-add-row{display:flex;gap:8px}.inline-add-row .form-input{flex:1 1}.btn-small{font-size:13px;padding:8px 16px;white-space:nowrap}.form-input::placeholder{color:#999}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;font-size:14px;padding:12px 16px;text-align:center}.form-actions{display:flex;gap:12px;margin-top:8px}.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-family:inherit;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-primary{background-color:#00ff7f;color:#fff}.btn-primary:hover{background-color:#00e070;box-shadow:0 4px 12px #00ff7f4d;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:#f5f5f5;color:#666}.btn-secondary:hover{background-color:#e8e8e8}@media (max-width:480px){.modal-content{padding:20px;width:95%}.modal-header h2{font-size:18px}.form-actions{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%}}.settings-container{flex:1 1;overflow-y:auto;padding:20px}.settings-header{margin-bottom:24px}.settings-header h2{color:#333;font-size:24px}.settings-section{background:#f8f8f8;border:1px solid #e0e0e0;border-radius:12px;padding:20px}.profile-settings{margin-bottom:20px}.manage-profile-info{display:flex;flex-direction:column;gap:12px}.profile-info-row{align-items:center;display:flex;font-size:14px;justify-content:space-between}.info-label{color:#888;font-weight:500}.info-value{color:#333;font-weight:600}.edit-profile-btn{margin-top:8px;width:100%}.section-title{border-bottom:1px solid #ddd;color:#666;font-size:16px;font-weight:600;margin-bottom:16px;padding-bottom:8px}.manage-habits-list{display:flex;flex-direction:column;gap:12px}.manage-habit-item{align-items:center;background:#fff;border:1px solid #eee;border-radius:10px;display:flex;justify-content:space-between;padding:12px 16px;transition:transform .2s}.manage-habit-item:hover{border-color:#00ff7f;transform:translateX(4px)}.manage-habit-info{flex:1 1}.manage-habit-name{color:#333;font-size:15px;font-weight:500;margin-bottom:2px}.manage-habit-category{color:#888;font-size:12px}.manage-habit-actions{display:flex;gap:8px}.manage-btn{background:none;border:none;border-radius:8px;cursor:pointer;font-size:18px;line-height:1;padding:8px;transition:background-color .2s}.edit-btn:hover{background-color:#f0f0f0}.delete-btn:hover{background-color:#fee}.no-habits-msg{color:#999;font-style:italic;padding:20px;text-align:center}.settings-placeholder{display:none}.quantity-modal-body{margin-bottom:20px}.habit-info{color:#333;font-size:16px;margin-bottom:16px;text-align:center}.habit-info strong{color:#00ff7f}.check-box.with-quantity{position:relative}.quantity-display{color:#fff!important;font-size:13px;font-weight:800;left:50%;pointer-events:none;position:absolute;text-shadow:0 1px 3px #00000080;top:50%;transform:translate(-50%,-50%)}.check-box{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width:480px){.quantity-display{font-size:10px}}.auth-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-card{animation:slideUp .4s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:450px;padding:40px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-title{color:#333;font-size:28px;font-weight:700;margin-bottom:8px;text-align:center}.auth-subtitle{color:#666;margin-bottom:30px}.auth-error,.auth-subtitle{font-size:14px;text-align:center}.auth-error{animation:shake .3s ease-in-out;background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;margin-bottom:20px;padding:12px 16px}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.auth-form{gap:20px}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.form-group label{color:#333;font-size:14px;font-weight:500}.form-group input{background-color:#f8f8f8;border:2px solid #e0e0e0;border-radius:10px;font-size:15px;padding:12px 16px;transition:all .3s ease}.form-group input:focus{background-color:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{cursor:not-allowed;opacity:.6}.field-error{color:#c33;font-size:12px;margin-top:-4px}.auth-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;box-shadow:0 4px 15px #667eea66;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px 24px;transition:all .3s ease}.auth-button:hover:not(:disabled){box-shadow:0 6px 20px #667eea80;transform:translateY(-2px)}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.auth-switch{color:#666;font-size:14px;margin-top:24px;text-align:center}.auth-link{background:none;border:none;color:#667eea;cursor:pointer;font-weight:600;padding:0;text-decoration:none;transition:color .2s ease}.auth-link:hover:not(:disabled){color:#764ba2;text-decoration:underline}.auth-link:disabled{cursor:not-allowed;opacity:.6}@media (max-width:480px){.auth-card{padding:30px 20px}.auth-title{font-size:24px}.form-row{grid-template-columns:1fr}}.charts-container{display:flex;flex-direction:column;height:100%;padding:20px;width:100%}.charts-header{margin-bottom:30px}.charts-header h2{color:#333;font-size:24px;font-weight:600;margin-bottom:20px}.period-selector{display:flex;flex-wrap:wrap;gap:10px}.period-btn{background:#fff;border:2px solid #e0e0e0;border-radius:8px;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.period-btn:hover{border-color:#cf0;color:#cf0}.period-btn.active{background:#cf0;border-color:#cf0;color:#333;font-weight:600}.charts-loading{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;min-height:400px}.chart-wrapper{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;flex:1 1;min-height:500px;padding:30px 20px;position:relative}.custom-tooltip{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 8px #00000026;padding:12px}.tooltip-date{color:#666;font-size:12px;margin:0 0 4px}.tooltip-count{color:#cf0;font-size:14px;font-weight:600;margin:0}.no-data-message{color:#999;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.no-data-message p{font-size:16px;margin:8px 0}.no-data-hint{color:#bbb;font-size:14px}@media (max-width:768px){.charts-container{padding:15px}.charts-header h2{font-size:20px}.period-btn{flex:1 1;min-width:calc(33.333% - 7px)}.chart-wrapper{padding:15px}}@media (max-width:480px){.period-selector{gap:8px}.period-btn{font-size:13px;padding:8px 12px}}
/*# sourceMappingURL=main.285ac2f8.css.map*/