.crf-container{
    max-width:600px;
    margin:0 auto;
}

.crf-form-group{
    margin-bottom:16px;
}

.crf-form input,
.crf-form select,
.crf-form textarea{
    width:100%;
    padding:12px 14px;
    border:1px solid #dcdcdc;
    border-radius:6px;
    font-size:15px;
    box-sizing:border-box;
}

.crf-form textarea{
    min-height:120px;
    resize:vertical;
}

.crf-submit-btn{
    width:100%;
    border:none;
    padding:14px;
    cursor:pointer;
    border-radius:6px;
    font-size:16px;
    font-weight:600;
    position:relative;
}

.crf-submit-btn:disabled{
    opacity:.7;
    cursor:not-allowed;
}

.crf-loading-spinner{
    width:18px;
    height:18px;
    border:2px solid #ffffff;
    border-top:2px solid transparent;
    border-radius:50%;
    display:inline-block;
    animation:crfSpin .7s linear infinite;
    vertical-align:middle;
}

@keyframes crfSpin{
    100%{
        transform:rotate(360deg);
    }
}

.crf-field-error{
    color:#d63638;
    font-size:13px;
    margin-top:6px;
}

.crf-form-message{
    margin-top:15px;
    padding:12px;
    border-radius:6px;
    font-size:14px;
}

.crf-form-message.success{
    background:#ecf7ed;
    color:#0f5132;
}

.crf-form-message.error{
    background:#fdecec;
    color:#842029;
}

.crf-char-counter{
    text-align:right;
    font-size:12px;
    margin-top:4px;
    opacity:.7;
}

.crf-checkbox-group{
    margin-bottom:10px;
}

.crf-checkbox-group label{
    display:flex;
    align-items:flex-start;
    gap:8px;
}

.crf-optional-section{
    padding:14px;
    border:1px solid #e5e5e5;
    border-radius:6px;
    margin-bottom:16px;
}

.crf-optional-label{
    display:block;
    margin-bottom:10px;
    font-weight:600;
}