.kpdb2b-form{
    max-width:720px;
    margin:24px auto;
}

.kpdb2b-form h3{
    margin:0 0 16px;
    font-size:1.35rem;
    text-align:center;
}

.kpdb2b-form__subtitle{
    margin:0 0 18px;
    text-align:center;
    color:#4b5563;
    font-size:0.95rem;
}

.kpdb2b-form__inner{
    background:#ffffff;
    border:1px solid #e5e5e5;
    border-radius:12px;
    box-shadow:0 1px 4px rgba(0,0,0,0.04);
    padding:24px;
    position:relative;
}

.kpdb2b-alert{
    padding:12px 14px;
    border-radius:8px;
    margin-bottom:16px;
    border:1px solid transparent;
    font-size:0.95rem;
}
.kpdb2b-alert.success{
    background:#ecfdf5;
    border-color:#10b981;
    color:#065f46;
}
.kpdb2b-alert.error{
    background:#fef2f2;
    border-color:#ef4444;
    color:#7f1d1d;
}

.kpdb2b-step-progress{
    font-weight:600;
    color:#1f2937;
    margin-bottom:18px;
}

.kpdb2b-steps{
    display:block;
}

.kpdb2b-step{
    border:0;
    padding:0;
    margin:0 0 12px;
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
}

.kpdb2b-form__inner.kpdb2b-form--js .kpdb2b-step{
    display:none;
}

.kpdb2b-form__inner.kpdb2b-form--js .kpdb2b-step.is-active{
    display:grid;
}

.kpdb2b-step legend{
    font-weight:600;
    font-size:1.05rem;
    margin-bottom:4px;
    color:#111827;
}

.kpdb2b-step__description{
    margin:0 0 4px;
    color:#4b5563;
    font-size:0.95rem;
}

.kpdb2b-field{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.kpdb2b-field label{
    font-weight:600;
    color:#111827;
    font-size:0.95rem;
}

.kpdb2b-required{
    color:#d92d20;
    font-weight:700;
}

.kpdb2b-field input,
.kpdb2b-field textarea,
.kpdb2b-field select{
    width:100%;
    padding:10px;
    border:1px solid #d1d5db;
    border-radius:8px;
    font-size:1rem;
    transition:border-color .2s ease, box-shadow .2s ease;
}

.kpdb2b-field input:focus,
.kpdb2b-field textarea:focus,
.kpdb2b-field select:focus{
    outline:none;
    border-color:#2563eb;
    box-shadow:0 0 0 3px rgba(37,99,235,0.15);
}

.kpdb2b-step__actions{
    display:flex;
    justify-content:flex-end;
    gap:12px;
    margin-top:8px;
}

.kpdb2b-btn{
    border:none;
    border-radius:8px;
    padding:10px 18px;
    font-weight:600;
    cursor:pointer;
    font-size:0.95rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    transition:background-color .2s ease, transform .2s ease;
}

.kpdb2b-btn--primary{
    background:#1e73be;
    color:#ffffff;
}

.kpdb2b-btn--primary:hover{
    background:#165a94;
}

.kpdb2b-btn--secondary{
    background:#e5e7eb;
    color:#1f2937;
}

.kpdb2b-btn--secondary:hover{
    background:#d1d5db;
}

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

@media (min-width: 640px){
    .kpdb2b-step{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
    .kpdb2b-step legend,
    .kpdb2b-step__description,
    .kpdb2b-step__actions{
        grid-column:1 / -1;
    }
    .kpdb2b-field--full{
        grid-column:1 / -1;
    }
}

.kpdb2b-form__inner.kpdb2b-form--nojs .kpdb2b-step{
    display:grid;
}
.kpdb2b-field select.kpdb2b-select--loading {
  background-image: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 37%, #f3f4f6 63%);
  background-size: 300% 100%;
  animation: kpdb2b-shimmer 1.2s infinite;
  color: #6b7280;
}
@keyframes kpdb2b-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: 0 0; }
}