*{box-sizing:border-box;margin:0;padding:0}.spinner{animation:spinner-rotate .8s linear infinite;color:#007bff;display:inline-block;vertical-align:middle}.spinner__circle{stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;animation:spinner-dash 1.5s ease-in-out infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.todo-edit-form[data-v-7baf6a36]{display:flex;flex-direction:column;gap:8px}.todo-edit-form[data-submitting=true][data-v-7baf6a36]{opacity:.7;pointer-events:none}.todo-edit-form__input[data-v-7baf6a36],.todo-edit-form__textarea[data-v-7baf6a36]{padding:8px 10px;border:1px solid #ccc;border-radius:6px;font-size:14px;font-family:inherit}.todo-edit-form__input[data-v-7baf6a36]:focus-visible,.todo-edit-form__textarea[data-v-7baf6a36]:focus-visible{outline:none;border-color:#007bff}.todo-edit-form__actions[data-v-7baf6a36]{display:flex;gap:8px;align-items:center}.todo-edit-form__button[data-v-7baf6a36]{border:none;padding:6px 10px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.todo-edit-form__button--save[data-v-7baf6a36]{background-color:#28a745;color:#fff}.todo-edit-form__button--save[data-v-7baf6a36]:hover{background-color:#218838}.todo-edit-form__button--cancel[data-v-7baf6a36]{background-color:#ffc107;color:#333}.todo-edit-form__button--cancel[data-v-7baf6a36]:hover{background-color:#e0a800}.todo-item{display:flex;justify-content:space-between;align-items:flex-start;background-color:#fff;padding:16px 20px;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:10px;gap:10px;transition:box-shadow .2s ease}.todo-item:hover{box-shadow:0 4px 14px #00000014}.todo-item__left{display:flex;gap:16px;flex:1}.todo-item__checkbox{width:20px;height:20px;margin-top:4px;accent-color:#007bff}.todo-item__content{flex:1}.todo-item__title{margin:0 0 4px;font-size:16px;font-weight:600;color:#333}.todo-item__title--completed{text-decoration:line-through;color:#aaa}.todo-item__description{margin:0 0 6px;color:#555}.todo-item__date{font-size:10px;color:#999}.todo-item__input,.todo-item__textarea{padding:8px 10px;border:1px solid #ccc;border-radius:6px;font-size:14px;font-family:inherit}.todo-item__input:focus-visible,.todo-item__textarea:focus-visible{outline:none;border-color:#007bff}.todo-item__actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.todo-item__button{border:none;padding:6px 10px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.todo-item__button--edit{background-color:#f0f0f0;color:#333}.todo-item__button--edit:hover{background-color:#e2e2e2}.todo-item__button--delete{background-color:#dc3545;color:#fff}.todo-item__button--delete:hover{background-color:#c82333}.todo-list{display:flex;flex-direction:column;gap:10px}.todo-form{display:flex;flex-direction:column;gap:10px;padding:20px;background-color:#f9f9f9;border-radius:12px;box-shadow:0 2px 8px #0000000f;transition:background-color .2s ease}.todo-form[data-submitting=true]{opacity:.7;pointer-events:none}.todo-form__input,.todo-form__textarea{padding:10px 12px;border:1px solid #ccc;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s}.todo-form__input:focus-visible,.todo-form__textarea:focus-visible{outline:none;border-color:#007bff}.todo-form__button{align-self:flex-start;background-color:#007bff;color:#fff;font-weight:500;padding:10px 16px;font-size:14px;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s ease}.todo-form__button:hover{background-color:#0069d9}.todo-form__button--submitting{background-color:#f0f0f0;cursor:not-allowed}.loader[data-v-683a77b5]{display:flex;align-items:center;justify-content:center;gap:6px;padding:20px;position:relative}.loader__dot[data-v-683a77b5]{width:10px;height:10px;border-radius:50%;background-color:#007bff;animation:bounce-683a77b5 1.2s infinite ease-in-out}.loader__dot[data-v-683a77b5]:nth-child(1){animation-delay:0s}.loader__dot[data-v-683a77b5]:nth-child(2){animation-delay:.15s}.loader__dot[data-v-683a77b5]:nth-child(3){animation-delay:.3s}@keyframes bounce-683a77b5{0%,80%,to{transform:scale(.9);opacity:.5}40%{transform:scale(1.3);opacity:1}}.app{max-width:600px;margin:0 auto;padding:20px}.error{color:red;text-align:center}
