.habit-card{color:#fff;border-radius:2.375rem;flex-direction:column;width:100%;height:100%;max-height:calc(100vh - 14rem);display:flex;position:relative;overflow:hidden}.habit-card:before{-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);content:"";background:#ffffff0d;border-radius:2.375rem;position:absolute;inset:0;box-shadow:inset 2px 4px 16px #f7f7f70f}.habit-card:after{pointer-events:none;content:"";border:1.5px solid #ffffff0d;border-radius:2.375rem;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.habit-scrollable{z-index:10;max-height:calc(100vh - 18rem);padding:1rem;position:relative;overflow-y:auto}.habit-scrollable::-webkit-scrollbar{width:6px}.habit-scrollable::-webkit-scrollbar-track{background:#ffffff05;border-radius:10px}.habit-scrollable::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.habit-scrollable::-webkit-scrollbar-thumb:hover{background:#ffffff26}.habit-item{cursor:pointer;background:#a3a3a30d;border-radius:1.5rem;gap:.75rem;margin-bottom:1rem;padding:.75rem;transition:all .2s;display:flex;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.habit-item:hover{background:#ffffff0d}.habit-item:active{transform:scale(.975)}.habit-info{flex-direction:column;flex:1;justify-content:center;gap:.25rem;display:flex}.habit-title{-webkit-line-clamp:1;color:#fff;-webkit-box-orient:vertical;font-size:1rem;font-weight:500;line-height:1.5rem;display:-webkit-box;overflow:hidden}.habit-description{-webkit-line-clamp:3;color:#ffffffb3;-webkit-box-orient:vertical;font-size:.75rem;line-height:1rem;display:-webkit-box;overflow:hidden}.habit-description p{margin:0}.habit-description strong{font-weight:600}.habit-description em{font-style:italic}.habit-footer{z-index:10;border-top:1px solid #ffffff0d;padding:1rem;position:relative}.empty-habits{text-align:center;background:#ffffff0d;border-radius:1.5rem;flex-direction:column;justify-content:center;align-items:center;margin-bottom:1rem;display:flex;position:relative;overflow:hidden;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.habit-grid{flex-direction:column;gap:.125rem;display:flex}.habit-grid-row{gap:.125rem;width:100%;display:flex}.habit-grid-cell{background:#5252520d;border-radius:.125rem;width:.625rem;height:.625rem}.empty-content{z-index:10;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem 0;display:flex;position:relative}.heatmap-container{border-radius:.75rem;height:100%;display:flex;overflow:hidden}.heatmap-weeks{gap:.125rem;display:flex}.heatmap-week{flex-direction:column;gap:.125rem;display:flex}.heatmap-day-wrapper{position:relative}.heatmap-day{background:#ffffff0d;border-radius:.125rem;width:.625rem;height:.625rem;transition:all .2s;display:flex}.heatmap-day.active{background:linear-gradient(to top right,#86efac,#4ade80,#22c55e);box-shadow:0 1px 2px #0000000d}.button{border-radius:1rem;outline:none;justify-content:center;align-items:center;gap:.5rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.add-button{color:#064e3b;background:#4ade80;margin-bottom:.5rem;padding:.625rem}.add-button:hover{background:#86efac}.add-habit-button{color:#4ade80;background:#4ade8033;width:100%;padding:.75rem 1rem}.add-habit-button:hover{background:#4ade804d}.complete-button{color:#064e3b;background:#4ade80;padding:.375rem .625rem}.complete-button:hover{background:#86efac}.undo-button{background:#ffffff1a;padding:.375rem .625rem}.undo-button:hover{background:#ffffff40}.menu-button{background:#ffffff1a;padding:.375rem}.menu-button:hover{background:#ffffff40}.submit-button{color:#000c;background:#22c55e;width:100%;padding:.625rem .75rem;font-weight:600}.submit-button:hover{background:#4ade80}.save-button{color:#fff;background:#3b82f6;border-radius:9999px;padding:.5rem 1rem}.save-button:hover{background:#60a5fa}.cancel-button{color:#fff;background:#ffffff1a;border-radius:9999px;padding:.5rem 1rem}.cancel-button:hover{background:#ffffff26}.delete-button{color:#fff;background:#ef4444;padding:.5rem 1rem}.delete-button:hover{background:#dc2626}.delete-button:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(16px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{color:#fff;-webkit-backdrop-filter:blur(50px);background:#ffffff0d;border:1.5px solid #ffffff0d;border-radius:2.375rem;width:100%;max-width:28rem;max-height:90vh;margin:0 1rem;position:relative;overflow-y:auto;box-shadow:inset 2px 4px 16px #f7f7f70f,inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a}.habit-form,.habit-detail{position:relative}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:#ffffff05;border-radius:10px}.modal-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.form-group{position:relative}.form-input{color:#fff;background:#ffffff1a;border-radius:1rem;outline:none;width:100%;padding:1rem;transition:all .2s;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.form-input::placeholder{color:#ffffff59}.form-input:focus{background:#ffffff26}.scroll-bar{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent}.scroll-bar::-webkit-scrollbar{width:6px}.scroll-bar::-webkit-scrollbar-track{background:0 0}.scroll-bar::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.toggle-container{background:#ffffff1a;border-radius:1rem;justify-content:space-between;align-items:center;padding:1rem;display:flex;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.toggle-switch{background:#fff3;border-radius:9999px;align-items:center;width:2.75rem;height:1.5rem;transition:background-color .2s;display:inline-flex;position:relative}.toggle-switch.active{background:#22c55e}.toggle-thumb{background:#fff;border-radius:9999px;width:1rem;height:1rem;transition:transform .2s;display:inline-block;transform:translate(.25rem)}.toggle-switch.active .toggle-thumb{transform:translate(1.5rem)}.detail-container{z-index:10;flex-direction:column;gap:1rem;padding:1.5rem;display:flex;position:relative}.detail-header{background:#ffffff1a;border-radius:1.5rem;flex-direction:column;gap:.625rem;padding:.625rem;display:flex;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.completion-info{color:#ffffff40;justify-content:space-between;align-items:center;gap:.625rem;width:100%;padding:0 .125rem;font-size:.75rem;line-height:1rem;display:flex}.completion-bar{background:#ffffff1a;border-radius:9999px;flex:1;height:.25rem;overflow:hidden}.completion-fill{background:#ffffff40;height:100%;transition:width .3s}.detail-body{color:#fff;flex-direction:column;gap:1rem;display:flex}.detail-title-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.detail-title{-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:1.25rem;font-weight:600;line-height:1.75rem;display:-webkit-box;overflow:hidden}.detail-actions{align-items:center;gap:.75rem;display:flex}.dropdown-wrapper{position:relative}.dropdown-menu{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;pointer-events:none;background:#000c;border-radius:1rem;min-width:10rem;margin-top:.5rem;transition:opacity .2s;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.dropdown-wrapper:hover .dropdown-menu{opacity:1;pointer-events:auto}.dropdown-item{cursor:pointer;text-align:left;border-radius:.5rem;align-items:center;gap:.75rem;width:100%;margin:.25rem;padding:.5rem;transition:background-color .2s;display:flex}.dropdown-item:hover{background:#0000004d}.dropdown-item.delete-item{color:#ef4444}.dropdown-item.delete-item:hover{background:#7f1d1d4d}.dropdown-divider{border-bottom:1px solid #ffffff0d}.detail-content-box{-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);background:#ffffff1a;border-radius:1.5rem;flex-direction:column;gap:.5rem;padding:1rem;display:flex;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.detail-meta{justify-content:space-between;align-items:center;display:flex}.detail-description{max-height:calc(100vh - 23rem);overflow-y:auto}.detail-description::-webkit-scrollbar{width:6px}.detail-description::-webkit-scrollbar-track{background:#ffffff05;border-radius:10px}.detail-description::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.edit-visibility{justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.875rem;line-height:1.25rem;display:flex}.edit-actions{justify-content:space-between;align-items:center;display:flex}.delete-confirmation{background:#0f0f0ff2;border:1px solid #ef44444d;border-radius:1.5rem;padding:2rem;box-shadow:inset .5px .5px 1px #ffffff1a,inset -.5px -.5px 1px #0000001a,0 3px 10px -5px #0003}.delete-confirmation h3{color:#fff;margin-bottom:.5rem;font-size:1.125rem;font-weight:600}.delete-confirmation p{font-size:.875rem;line-height:1.25rem}.delete-confirmation .text-neutral-400{color:#a3a3a3}.prose{font-size:.875rem;line-height:1.5}.prose p{margin-bottom:.5rem}.prose strong{color:#fff;font-weight:600}.prose em{font-style:italic}.prose ul,.prose ol{margin-bottom:.5rem;margin-left:1rem}.prose li{margin-bottom:.25rem}.prose code{background:#ffffff1a;border-radius:.25rem;padding:.125rem .375rem;font-size:.75rem;line-height:1rem}.prose pre{background:#ffffff1a;border-radius:.5rem;margin-bottom:.5rem;padding:.75rem;overflow-x:auto}.prose h1,.prose h2,.prose h3{color:#fff;margin-bottom:.5rem;font-weight:600}.prose h1{font-size:1.25rem;line-height:1.75rem}.prose h2{font-size:1.125rem;line-height:1.75rem}.prose h3{font-size:1rem;line-height:1.5rem}.confetti-container{pointer-events:none;z-index:50;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confetti{font-size:3.75rem;line-height:1;animation:.5s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}
