*{box-sizing:border-box;margin:0;padding:0}body{font-family:Urbanist,sans-serif;background-color:#121212;color:#e0e0e0;line-height:1.6;padding:20px;max-width:800px;margin:0 auto}.container{width:100%;max-width:600px;margin:0 auto;padding:20px}h1,h2,h3{font-weight:600;margin-bottom:1.5rem;letter-spacing:.5px}h1{font-size:2.2rem;padding-bottom:.5rem;text-align:center;letter-spacing:-.5px}input,button{font-family:Urbanist,sans-serif;font-size:1rem;padding:10px 16px;border-radius:8px;margin-bottom:1rem;transition:all .2s ease}input{width:100%;background-color:#2a2a2a;color:#e0e0e0;border:2px solid transparent;letter-spacing:.3px}input::placeholder{color:#888;font-weight:300}input:hover{background-color:#3c3c3c}input:focus{outline:none;border-color:#4ecdc4;background-color:#2a2a2a;box-shadow:0 0 0 2px #4ecdc44d}button{background-color:#4ecdc4;color:#121212;font-weight:600;cursor:pointer;border:none;transition:all .2s;box-shadow:0 2px 4px #0003;letter-spacing:.5px;text-transform:uppercase;font-size:.9rem}button:hover{background-color:#62d3cb;box-shadow:0 3px 5px #0000004d}button:active{box-shadow:0 1px 2px #0003}button.delete{background-color:transparent;color:#f55;border:none;margin-bottom:0;padding:6px;line-height:1;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;box-shadow:none;opacity:0;transition:opacity .2s ease,background-color .2s ease}button.delete:hover{background-color:#ff555526;color:#f88}.todo-list{list-style:none;margin:1.5rem 0;display:flex;flex-direction:column;gap:16px}.todo-form{display:flex;margin-bottom:20px}.todo-form .input-container{flex:1;position:relative}.todo-form .input-container .todo-input{width:100%;height:50px;margin-bottom:0;transition:border-radius .1s ease}.todo-form .input-container .todo-input.options-open{border-radius:8px 8px 0 0}.todo-form .input-container .options-toggle{position:absolute;right:12px;top:14px;background:none;border:none;color:#aaa;padding:4px;margin-bottom:0;border-radius:50%;cursor:pointer;box-shadow:none}.todo-form .input-container .todo-options{position:absolute;top:50px;left:0;right:0;background-color:#2a2a2a;border-radius:0 0 8px 8px;padding:12px;z-index:5;border:1px solid #333;border-top:none}.sort-controls{position:relative;margin-bottom:12px;width:100%}.sort-controls .sort-button{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#292929;border:none;border-radius:8px;color:#e0e0e0;font-size:.85rem;cursor:pointer;transition:background-color .2s ease;font-family:Urbanist,sans-serif;margin-bottom:0;box-shadow:none}.sort-controls .sort-button:hover{background-color:#363636}.sort-controls .sort-button.active{background-color:#3d3d3d}.sort-controls .sort-button span{flex:1;text-align:left}.sort-controls .sort-menu{position:absolute;height:fit-content;top:100%;left:0;right:0;background-color:#292929;border-radius:8px;padding:6px;margin-top:4px;z-index:10;display:flex;flex-direction:column;gap:2px;box-shadow:0 4px 12px #0003;animation:fadeIn .2s ease}.sort-controls .sort-menu button{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:transparent;border:none;border-radius:6px;color:#e0e0e0;text-align:left;font-size:.85rem;cursor:pointer;margin-bottom:0;font-family:Urbanist,sans-serif;transition:background-color .2s ease;box-shadow:none}.sort-controls .sort-menu button:hover{background-color:#4ecdc41a}.sort-controls .sort-menu button.active{background-color:#4ecdc426;color:#4ecdc4}.todo-controls{display:flex;justify-content:space-between;padding:10px 0}.options-toggle{position:absolute;right:10px;top:12px;background:transparent;border:none;color:#aaa;padding:5px;cursor:pointer;margin:0;box-shadow:none;display:flex;align-items:center;justify-content:center}.options-toggle:hover{color:#e0e0e0;background:transparent}.todo-options{position:absolute;top:50px;left:0;right:0;background-color:#2a2a2a;border-radius:0 0 8px 8px;padding:10px;box-shadow:0 4px 8px #0003;margin-top:0;z-index:5;animation:slideDown .2s ease-out}.todo-options .option-group{margin-bottom:10px;display:flex;flex-direction:column}.todo-options .option-group:last-child{margin-bottom:0}.todo-options .option-group label{margin-bottom:4px;color:#aaa;font-size:.8rem}.todo-options .option-group input{padding:8px 12px;background-color:#1e1e1e80;border:1px solid #333;margin-bottom:0}button[type=submit]{width:50px;height:50px;border-radius:8px;padding:0;margin-left:10px;color:#121212;display:flex;align-items:center;justify-content:center;flex-shrink:0}.todo-container{position:relative}.todo-container .swipe-indicator{position:absolute;top:0;height:100%;width:80px;display:flex;align-items:center;justify-content:center;z-index:-1}.todo-container .swipe-indicator.swipe-left-indicator{right:0;color:#f55}.todo-container .swipe-indicator.swipe-left-indicator svg{width:28px;height:28px;stroke-width:2.5}.todo-container .swipe-indicator.swipe-right-indicator{left:0;color:#6bff6b}.todo-container .swipe-indicator.swipe-right-indicator svg{width:28px;height:28px;stroke-width:2.5}.todo-container .todo-item.swipe-left~.swipe-left-indicator,.todo-container .todo-item.swipe-right~.swipe-right-indicator{opacity:1}.todo-item{display:flex;align-items:stretch;padding:0;border-radius:8px;box-shadow:0 2px 4px #0003;overflow:hidden;transition:transform .2s,box-shadow .2s;position:relative}.todo-item:hover:not(.swiping):not(.swipe-left):not(.swipe-right){box-shadow:0 4px 8px #0000004d}.todo-item.swiping{cursor:grabbing;transition:transform .05s;-webkit-user-select:none;user-select:none}.todo-item:not(.swiping){transition:transform .2s ease-out}.todo-item.completed .todo-text{text-decoration:line-through;color:#888}.todo-item .todo-actions{display:flex;align-items:center;margin-left:auto}.todo-item .todo-actions .todo-icon{display:flex;align-items:center;justify-content:center;min-width:40px;padding:0 5px;color:hsl(var(--accent-hue),70%,60%)}.todo-item .todo-content{flex:1;display:flex;flex-direction:column;background-color:inherit;position:relative;z-index:1;width:100%}.todo-item .todo-header{display:flex;align-items:center;padding:12px}.todo-item .todo-header .todo-checkbox{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;position:relative}.todo-item .todo-header .todo-checkbox .checkbox-icon{color:#e0e0e080;transition:all .2s ease}.todo-item .todo-header .todo-checkbox .checkbox-icon.completed{color:#6bff6b}.todo-item .todo-header .todo-checkbox:hover .checkbox-icon:not(.completed){color:#4ecdc4}.todo-item .todo-footer{display:flex;justify-content:space-between;align-items:center;padding:0 10px 10px;min-height:32px}.todo-item .todo-footer .todo-footer-actions{display:flex;align-items:center;gap:8px}.todo-item .todo-footer .todo-footer-actions .edit{background-color:transparent;color:#4ecdc4;border:none;padding:6px;margin-bottom:0;line-height:1;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;box-shadow:none;opacity:0;transition:opacity .2s ease,background-color .2s ease}.todo-item .todo-footer .todo-footer-actions .edit:hover{background-color:#4ecdc426}@media (max-width: 768px){.todo-item .todo-footer .todo-footer-actions{display:none}}.todo-item:hover .delete,.todo-item:hover .todo-footer-actions .edit{opacity:1}.todo-item .todo-text{flex:1;margin:0 10px;font-size:16px;color:#e0e0e0;word-break:break-word;transition:color .2s ease}.todo-item .todo-text-input{flex:1;margin:0 10px;background-color:#29292999;border:1px solid rgba(78,205,196,.3);border-radius:4px;padding:6px 8px;font-size:16px;font-family:Urbanist,sans-serif;color:#e0e0e0;width:calc(100% - 80px);transition:border-color .2s ease}.todo-item .todo-text-input:focus{outline:none;border-color:#4ecdc4;background-color:#292929cc}.todo-item .todo-details{display:flex;flex-wrap:wrap;gap:8px;max-width:75%}.todo-item .todo-details .todo-detail{font-size:.7rem;color:#aaa;display:flex;align-items:center;gap:4px;background-color:#1e1e1e66;padding:2px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.todo-item .todo-details .todo-detail svg{color:#4ecdc4;min-width:14px}.todo-item .todo-edit-footer{padding:10px}.todo-item .todo-edit-footer .edit-details{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.todo-item .todo-edit-footer .edit-details .edit-group label{display:flex;align-items:center;gap:10px}.todo-item .todo-edit-footer .edit-details .edit-group label svg{color:#4ecdc4;min-width:14px}.todo-item .todo-edit-footer .edit-details .edit-group label input{flex:1;background-color:#1e1e1e66;color:#e0e0e0;border:1px solid #333;padding:6px 8px;border-radius:4px;font-size:.8rem;margin:0}.todo-item .todo-edit-footer .edit-actions{display:flex;justify-content:flex-end;gap:8px}.todo-item .todo-edit-footer .edit-actions button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px;padding:0;margin:0;box-shadow:none}.todo-item .todo-edit-footer .edit-actions button.cancel{background-color:transparent;border:1px solid rgba(255,85,85,.3);color:#f55}.todo-item .todo-edit-footer .edit-actions button.cancel:hover{background-color:#ff55551a}.todo-item .todo-edit-footer .edit-actions button.save{background-color:#4ecdc4;border:none;color:#121212}.todo-item .todo-edit-footer .edit-actions button.save:hover{background-color:#62d3cb}.todo-controls{display:flex;justify-content:space-between;align-items:center;padding:10px 0;margin-top:10px;gap:10px}.todo-controls .active-count{display:flex;align-items:center;gap:5px;color:#e0e0e0cc}.todo-controls .clear-completed{padding:5px 10px;background-color:transparent;border:none;border-radius:4px;color:#f55;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:14px;transition:all .2s ease}.todo-controls .clear-completed:hover:not(:disabled){background-color:#ff55551a}.todo-controls .clear-completed:disabled{opacity:.4;cursor:default}.todo-controls .active-count{display:flex;align-items:center;gap:6px;color:#6bff6b}.margin-top{margin-top:2rem}.margin-bottom{margin-bottom:2rem}.undo-notification{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background-color:#1e1e1e;color:#e0e0e0;padding:12px 16px;border-radius:8px;box-shadow:0 4px 12px #0000004d;display:flex;align-items:center;gap:12px;justify-content:space-between;min-width:240px;z-index:100;border:1px solid rgba(51,51,51,.5);animation:slideUp .3s ease-out}.undo-notification .undo-button{background-color:transparent;border:1px solid rgba(224,224,224,.2);color:#4ecdc4;padding:6px 12px;margin:0;font-size:14px;display:flex;align-items:center;gap:6px;border-radius:4px;box-shadow:none;text-transform:none;letter-spacing:normal}.undo-notification .undo-button:hover{background-color:#4ecdc41a;transform:none;box-shadow:none}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem}.auth-card{width:100%;max-width:400px;background-color:#292929;border-radius:16px;padding:2.5rem 2rem;box-shadow:0 2px 4px #0000004d;border:1px solid #333}.auth-header{text-align:center;margin-bottom:2rem}.auth-title{font-size:1.2rem;color:#e0e0e0;margin-bottom:.5rem}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.auth-form .form-group{display:flex;flex-direction:column}.auth-form .input-with-icon{position:relative;display:flex;align-items:center}.auth-form .input-with-icon .input-icon{position:absolute;left:14px;color:#aaa;pointer-events:none}.auth-form .input-with-icon input{width:100%;padding:.9rem .9rem .9rem 3rem;margin:0;border-radius:12px;border:1px solid #333;background-color:#2a2a2a;color:#e0e0e0;font-size:1rem}.auth-form .input-with-icon input:focus{border-color:#4ecdc4;box-shadow:0 0 0 2px #4ecdc44d}.auth-form .input-with-icon input::placeholder{color:#888}.auth-form .auth-button{position:relative;margin:.5rem 0 0;padding:1rem;border-radius:12px;border:none;background-color:#4ecdc4;color:#121212;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;display:flex;justify-content:center;align-items:center;gap:8px;width:100%}.auth-form .auth-button:hover{background-color:#62d3cb}.auth-form .auth-button .button-text{position:relative;z-index:1}.auth-form .auth-button .button-icon{z-index:1}.auth-form .auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-form .auth-button.loading .button-text{visibility:hidden}.auth-form .error-message{padding:.75rem;color:#f55;background-color:#ff55551a;border-radius:8px;text-align:center;font-size:.9rem;border-left:3px solid #ff5555}.auth-form .divider{display:flex;align-items:center;text-align:center;color:#aaa;font-size:.9rem;margin:.5rem 0}.auth-form .divider:before,.auth-form .divider:after{content:"";flex:1;border-bottom:1px solid #333}.auth-form .divider:before{margin-right:.5rem}.auth-form .divider:after{margin-left:.5rem}.auth-form .auth-toggle{display:flex;justify-content:center;gap:.5rem;font-size:.95rem;color:#aaa}.auth-form .auth-toggle .toggle-button{background:none;border:none;color:#4ecdc4;font-weight:600;cursor:pointer;padding:0;margin:0;font-size:.95rem;box-shadow:none}.auth-form .auth-toggle .toggle-button:hover{color:#76d8d1}.loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;border:2px solid rgba(42,42,42,.3);border-radius:50%;border-top-color:#121212;animation:spin .8s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-in}@media (max-width: 600px){body{padding:10px}.container{padding:15px}}.confirmation-dialog{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#121212cc;display:flex;justify-content:center;align-items:center;z-index:10;animation:fadeIn .2s ease}.confirmation-dialog .confirmation-content{background-color:#1e1e1e;border-radius:8px;padding:20px;max-width:400px;width:90%;box-shadow:0 4px 20px #0000004d;text-align:center}.confirmation-dialog .confirmation-content p{margin-bottom:20px;font-size:16px}.confirmation-dialog .confirmation-content .confirmation-actions{display:flex;justify-content:center;gap:15px}.confirmation-dialog .confirmation-content .confirmation-actions button{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;font-weight:600;font-size:14px;margin-bottom:0}.confirmation-dialog .confirmation-content .confirmation-actions button.cancel-btn{background-color:transparent;border:1px solid rgba(224,224,224,.2);color:#e0e0e0;box-shadow:none}.confirmation-dialog .confirmation-content .confirmation-actions button.cancel-btn:hover{background-color:#e0e0e01a}.confirmation-dialog .confirmation-content .confirmation-actions button.confirm-btn{background-color:#f55;border:none;color:#1e1e1e}.confirmation-dialog .confirmation-content .confirmation-actions button.confirm-btn:hover{background-color:#ff3c3c}.app-container[data-v-fd4ab86d]{display:flex;flex-direction:column;min-height:100vh}.app-header[data-v-fd4ab86d]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:var(--color-bg-secondary);box-shadow:var(--box-shadow)}.app-header h1[data-v-fd4ab86d]{font-size:1.5rem;margin:0;padding:0;color:var(--color-text-primary)}.user-info[data-v-fd4ab86d]{display:flex;align-items:center;gap:1rem}.username[data-v-fd4ab86d]{font-weight:500;color:var(--color-text-secondary)}.logout-button[data-v-fd4ab86d]{margin:0;padding:.5rem;border:none;background-color:transparent;color:var(--color-text-secondary);cursor:pointer;display:grid;place-content:center;box-shadow:none;border-radius:50%;transition:all .2s ease}.logout-button[data-v-fd4ab86d]:hover{color:var(--accent-color);background-color:#ffffff0d;transform:scale(1.1)}main[data-v-fd4ab86d]{flex:1;display:flex;flex-direction:column}.container[data-v-fd4ab86d]{max-width:800px;width:100%;margin:0 auto;padding:1rem}
