/* Minimum tap target size for mobile */
button, a.btn, input[type="submit"], .tap-target {
    min-height: 44px;
    min-width: 44px;
}

/* Smooth HTMX transitions */
.htmx-swapping {
    opacity: 0;
    transition: opacity 0.2s ease-out;
}
.htmx-settling {
    opacity: 1;
    transition: opacity 0.2s ease-in;
}

/* Completion celebration */
@keyframes celebrate {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.05); background-color: #e8ebe3; }
    100% { transform: scale(1); }
}
.todo-completed {
    animation: celebrate 0.4s ease-in-out;
}

/* Form inputs */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
textarea,
select {
    width: 100%;
    padding: 0.625rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    font-size: 1rem;
    transition: border-color 0.15s;
}
input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: #6b7f56;
    box-shadow: 0 0 0 3px rgba(107, 127, 86, 0.15);
}
