input[type="text"], input[type="number"],
input[type="email"], input[type="password"], 
input[type="tel"], textarea{
    width: 100%;
    padding: var(--spacing-sm);
    margin: var(--spacing-xs) 0 var(--spacing-lg) 0;
    box-sizing: border-box;
    border: var(--border-default);
    border-radius: var(--radius-sm);
    font-size: var(--font-base);
}

select {
    width: 100%;
    padding: var(--spacing-sm);
    margin: var(--spacing-xs) 0 var(--spacing-lg) 0;
    box-sizing: border-box;
    border: var(--border-default);
    border-radius: var(--radius-sm);
    font-size: var(--font-base);
    color: var(--text-primary);
    background-color: var(--background-white);
}

input[type="date"] {
    width: 100%;
    padding: var(--spacing-sm);
    margin: var(--spacing-xs) 0 var(--spacing-lg) 0;
    box-sizing: border-box;
    border: var(--border-default);
    border-radius: var(--radius-sm);
    font-size: var(--font-base);
    background-color: var(--background-white);
}

.trix-content {
    margin: var(--spacing-xs) 0 var(--spacing-lg) 0;
}

input[type="text"]:focus, input[type="number"]:focus, 
input[type="datetime-local"]:focus, textarea:focus,  
input[type="email"]:focus, input[type="password"]:focus,
input[type="tel"]:focus {
    border-color: var(--focus-blue);
    outline: none;
}

input[type="file"] {
    margin: var(--spacing-xs) 0 var(--spacing-lg) 0;
    display: block;
}

input[type="submit"] {
    background-color: var(--primary-blue);
    color: var(--white);
    padding: var(--spacing-md) var(--spacing-2xl);
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    margin-top: var(--spacing-md);
    font-size: var(--font-base);
}

.logout > a {
    display: inline-block;
    text-decoration: none;
    color: var(--white);
    background-color: var(--error-red);
    padding: var(--spacing-md) var(--spacing-2xl);
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-weight: bold;
}

select {
    padding: var(--spacing-sm);
    margin: var(--spacing-xs) 0 var(--spacing-lg) 0;
    box-sizing: border-box;
    border: var(--border-default);
    border-radius: var(--radius-sm);
    font-size: var(--font-base);
    background-color: var(--background-white);
}

select:focus {
    border-color: var(--focus-blue);
    outline: none;
}

label {
    display: block;
    padding: var(--spacing-xs) 0 var(--spacing-xs) 0;
    font-weight: bold;
    font-size: var(--font-sm);
}

.field-with-errors > input,
.field-with-errors > textarea,
.field-with-errors > select,
.field-with-errors > .trix-content {
    border-color: var(--error-red);
    border-width: 2px;
}

span.error-message {
    color: var(--error-red);
    font-size: var(--font-xs);
    font-weight: bold;
    display: block;
    margin-top: -10px;
    margin-bottom: var(--spacing-md);
}

.datetime-inline {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}