/* ============================================================
   Accountant Booking Pro — Frontend Form Styles
   ============================================================ */

.acb-form-wrap { width: 100%; }

.acb-form {
    background: #fff;
    padding: 30px;
    border-radius: 8px;
    font-family: inherit;
}

.acb-form__title {
    margin: 0 0 24px;
    font-size: 22px;
    font-weight: 700;
    color: #1d2327;
}

/* Rows */
.acb-form__row { margin-bottom: 18px; }
.acb-form__row--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

/* Fields */
.acb-form__field { display: flex; flex-direction: column; gap: 6px; }

.acb-form label {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    display: block;
}

.acb-required { color: #c00; margin-left: 2px; }

.acb-form input[type="text"],
.acb-form input[type="email"],
.acb-form input[type="tel"],
.acb-form input[type="number"],
.acb-form input[type="date"],
.acb-form select,
.acb-form textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    background: #f9f9f9;
    color: #333;
    box-sizing: border-box;
    transition: border-color .2s, box-shadow .2s;
    appearance: auto;
    -webkit-appearance: auto;
}

.acb-form input:focus,
.acb-form select:focus,
.acb-form textarea:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 3px rgba(26, 115, 232, .15);
    background: #fff;
}

.acb-form input:disabled,
.acb-form select:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.acb-form textarea { resize: vertical; min-height: 90px; }

/* Checkbox */
.acb-form__checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: normal;
    cursor: pointer;
}
.acb-form__checkbox input[type="checkbox"] {
    width: auto;
    padding: 0;
    flex-shrink: 0;
}

/* Submit Button */
.acb-form__submit {
    display: inline-block;
    background: #1a73e8;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 12px 28px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s, transform .1s;
    line-height: 1;
}
.acb-form__submit:hover  { background: #1558b0; }
.acb-form__submit:active { transform: scale(.98); }
.acb-form__submit:disabled {
    opacity: .6;
    cursor: not-allowed;
}

/* Success / Error Messages */
.acb-form__success {
    padding: 16px 20px;
    background: #d4edda;
    color: #155724;
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.6;
    border: 1px solid #c3e6cb;
}

.acb-form__error {
    padding: 12px 16px;
    background: #f8d7da;
    color: #721c24;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 12px;
    border: 1px solid #f5c6cb;
}

/* Loading spinner */
.acb-form__submit-loading::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: acb-spin .7s linear infinite;
    margin-left: 8px;
    vertical-align: middle;
}

@keyframes acb-spin {
    to { transform: rotate(360deg); }
}

/* Responsive */
@media ( max-width: 600px ) {
    .acb-form__row--2col {
        grid-template-columns: 1fr;
    }
    .acb-form { padding: 20px; }
}
