/* dealer form styles (gravity forms-inspired) */

/* form group */
.form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 1rem;
}

.form-group:last-child {
    margin-bottom: 0;
}

.form-group.full-width {
    grid-column: 1 / -1;
}

/* labels */
.form-group label,
.form-label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #112337;
    margin-bottom: 2px;
}

/* input controls */
.form-group input,
.form-group select,
.form-group textarea,
.form-input,
.form-select,
.form-textarea,
.modal-input,
.modal-select {
    width: 100%;
    height: 38px;
    padding: 0 12px;
    border: 1px solid #686e77;
    border-radius: 3px;
    background: #fff;
    color: #112337;
    font-size: 14px;
    font-family: inherit;
    box-shadow: 0 1px 4px rgba(18, 25, 97, 0.078);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Textarea height override */
.form-group textarea,
.form-textarea {
    height: auto;
    min-height: 80px;
    padding: 8px 12px;
    resize: vertical;
}

/* Select arrow */
.form-group select,
.form-select,
.modal-select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23686e77' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px;
}

/* focus state */
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
.form-input:focus,
.form-select:focus,
.form-textarea:focus,
.modal-input:focus,
.modal-select:focus {
    border-color: #204ce5;
    outline: 3px solid rgba(45, 127, 251, 0.65);
    outline-offset: 1px;
}

/* placeholder */
.form-group input::placeholder,
.form-group textarea::placeholder,
.form-input::placeholder,
.form-textarea::placeholder,
.modal-input::placeholder {
    color: #8c8f94;
}

/* disabled state */
.form-group input:disabled,
.form-group select:disabled,
.form-group textarea:disabled,
.form-input:disabled,
.form-select:disabled,
.form-textarea:disabled,
.modal-input:disabled,
.modal-select:disabled {
    background: #f2f3f5;
    border-color: #d2d5db;
    color: rgba(17, 35, 55, 0.6);
    cursor: not-allowed;
}

/* error state */
.form-group input.error,
.form-group select.error,
.form-group textarea.error,
.form-input.error,
.form-select.error,
.form-textarea.error {
    border-color: #c02b0a;
}

/* field required validation */
@keyframes fieldShake {
    0%, 100% { transform: translateX(0); }
    15% { transform: translateX(-6px); }
    30% { transform: translateX(6px); }
    45% { transform: translateX(-4px); }
    60% { transform: translateX(4px); }
    75% { transform: translateX(-2px); }
    90% { transform: translateX(2px); }
}

.form-group.field-error input,
.form-group.field-error select,
.form-group.field-error textarea,
.modal-form-group.field-error input,
.modal-form-group.field-error select,
.modal-form-group.field-error textarea {
    border-color: #EF4444;
    background: #FEF2F2;
    animation: fieldShake 0.5s ease;
}

.form-group.field-error input:focus,
.form-group.field-error select:focus,
.form-group.field-error textarea:focus,
.modal-form-group.field-error input:focus,
.modal-form-group.field-error select:focus,
.modal-form-group.field-error textarea:focus {
    border-color: #EF4444;
    outline: 3px solid rgba(239, 68, 68, 0.3);
}

.field-error-msg {
    font-size: 12px;
    font-weight: 600;
    color: #EF4444;
    margin-top: 2px;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* valid state */
.form-group input.valid,
.form-input.valid {
    border-color: #27ae60;
}

/* grid layouts */
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

.form-row-3 {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 1rem;
}

/* form actions */
.form-actions {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
}

/* buttons */
.form-btn {
    padding: 12px 24px;
    background: #006897;
    color: #fff;
    border: none;
    border-radius: 3px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s ease;
}

.form-btn:hover {
    background: #0265a1;
}

.form-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.form-btn.secondary {
    background: #f2f3f5;
    color: #112337;
}

.form-btn.secondary:hover {
    background: #ddd;
}

.form-btn.danger {
    background: #e74c3c;
}

.form-btn.danger:hover {
    background: #c0392b;
}

/* filter inputs (orders page) */
.filter-input input,
.filter-input select {
    width: 100%;
    height: 38px;
    padding: 0 12px;
    border: 1px solid #686e77;
    border-radius: 3px;
    background: #fff;
    color: #112337;
    font-size: 14px;
    font-family: inherit;
    box-shadow: 0 1px 4px rgba(18, 25, 97, 0.078);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.filter-input input:focus,
.filter-input select:focus {
    border-color: #204ce5;
    outline: 3px solid rgba(45, 127, 251, 0.65);
    outline-offset: 1px;
}

.filter-input input::placeholder {
    color: #8c8f94;
}

.filter-input select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23686e77' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px;
}

/* login/register form overrides */
.login-form .form-group input,
.forgot-form .form-group input,
.register-form .form-group input {
    height: 44px;
    padding: 0 16px;
}

.login-form .form-group label,
.forgot-form .form-group label,
.register-form .form-group label {
    font-size: 14px;
    font-weight: 500;
    color: #112337;
}

/* modal form aliases */
.modal-form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 1rem;
}

.modal-form-group label {
    font-size: 14px;
    font-weight: 500;
    color: #112337;
}

.modal-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
}

/* responsive */
@media (max-width: 980px) {
    .form-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .form-actions {
        flex-direction: column;
    }
}

@media (max-width: 500px) {
    .form-row,
    .form-row-3 {
        grid-template-columns: 1fr;
    }

    .modal-form-row {
        grid-template-columns: 1fr;
    }
}
