:root {
    --leadgo-primary-color: #2667FF;
    --leadgo-text-color: #FFFFFF;
    --leadgo-primary-hover: #0044CC;
}

#leadgo-form-wrapper {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    background-color: #fff;
    border: 1px solid #EAECF0;
    padding: 32px;
    border-radius: 16px;
    max-width: 700px;
    margin: 2rem auto;
    box-shadow: 0 10px 30px -15px rgba(0, 0, 0, 0.1);
}

#leadgo-form { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 768px) {
    #leadgo-form { grid-template-columns: 1fr 1fr; }
    .leadgo-full-width { grid-column: 1 / -1; }
}

#leadgo-form p, #leadgo-form div { margin: 0; }
.leadgo-grid-item-double { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 768px) { .leadgo-grid-item-double { grid-template-columns: auto 1fr; align-items: flex-end; gap: 16px; } }

#leadgo-form label { display: block; margin-bottom: 8px; font-weight: 500; font-size: 14px; color: #344054; }
#leadgo-form input[type='text'], #leadgo-form input[type='email'], #leadgo-form input[type='tel'] {
    width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid #D0D5DD;
    border-radius: 8px; font-size: 16px; transition: border-color 0.2s, box-shadow 0.2s;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
#leadgo-form input:focus { outline: none; border-color: var(--leadgo-primary-color); box-shadow: 0 0 0 4px rgba(38, 103, 255, 0.1); }
#leadgo-form input.leadgo-input-error { border-color: #F04438; }

#leadgo-submit-button {
    background-color: var(--leadgo-primary-color); color: var(--leadgo-text-color);
    padding: 14px 20px; border: none; border-radius: 8px; cursor: pointer;
    font-size: 16px; font-weight: 600; width: 100%; transition: background-color 0.2s;
    display: flex; align-items: center; justify-content: center; min-height: 50px;
}
#leadgo-submit-button:hover:not(:disabled) { background-color: var(--leadgo-primary-hover); }
#leadgo-submit-button:disabled { background-color: #98A2B3; cursor: not-allowed; }

.leadgo-button-loader {
    width: 20px; height: 20px; border: 3px solid rgba(255, 255, 255, 0.3);
    border-top-color: var(--leadgo-text-color); border-radius: 50%; display: inline-block;
    box-sizing: border-box; animation: leadgo-rotation 1s linear infinite;
}
@keyframes leadgo-rotation { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.leadgo-icon-radio-group { display: flex; flex-wrap: wrap; gap: 12px; }
.leadgo-icon-radio-group input[type='radio'] { display: none; }
.leadgo-icon-radio-label { display: flex; align-items: center; justify-content: center; padding: 10px 16px; border: 1px solid #D0D5DD; border-radius: 20px; cursor: pointer; transition: all 0.2s; font-weight: 500; font-size: 14px; color: #344054; background-color: #fff; }
.leadgo-icon-radio-label svg { margin-right: 8px; width: 18px; height: 18px; }
.leadgo-icon-radio-group input[type='radio']:checked + .leadgo-icon-radio-label { border-color: var(--leadgo-primary-color); background-color: var(--leadgo-primary-color); color: var(--leadgo-text-color); }
.leadgo-icon-radio-group input[type='radio']:checked + .leadgo-icon-radio-label svg { stroke: var(--leadgo-text-color); }

.leadgo-toggle-group { display: inline-flex; border: 1px solid #D0D5DD; border-radius: 20px; padding: 4px; background-color: #F9FAFB; }
.leadgo-toggle-group input[type='radio'] { display: none; }
.leadgo-toggle-label { padding: 6px 16px; border-radius: 16px; cursor: pointer; transition: all 0.25s ease-in-out; font-weight: 500; font-size: 14px; color: #344054; white-space: nowrap; }
.leadgo-toggle-group input[type='radio']:checked + .leadgo-toggle-label { background-color: var(--leadgo-primary-color); color: var(--leadgo-text-color); box-shadow: 0 1px 3px rgba(0,0,0,0.1); }

#leadgo-form-messages { padding: 15px; margin-bottom: 20px; border-radius: 8px; font-weight: 500; grid-column: 1 / -1; }
.leadgo-success { background-color: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }
.leadgo-error { background-color: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }