.np-formbuilder-wrap {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
}

.np-formbuilder-card {
    border: 1px solid rgba(15,23,42,.06);
    border-radius: 1.35rem;
    background: rgba(255,255,255,.96);
    box-shadow:
        0 18px 45px rgba(15,23,42,.06),
        0 4px 16px rgba(15,23,42,.04);
    overflow: hidden;
}

.np-formbuilder-card-body {
    padding: 1.2rem;
}

.np-formbuilder-shell {
    padding: 1.1rem;
    border-radius: 1.15rem;
    border: 1px solid rgba(15,23,42,.06);
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.np-formbuilder-head {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin-bottom: 1.1rem;
}

.np-formbuilder-head-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background: linear-gradient(180deg, #eef2f7 0%, #e2e8f0 100%);
    color: #334155;
    font-size: 1rem;
}

.np-formbuilder-title {
    margin: .1rem 0 .18rem;
    color: #0f172a;
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: -.01em;
}

.np-formbuilder-subtitle {
    margin: 0;
    color: #64748b;
    font-size: .84rem;
    line-height: 1.55;
}

.np-formbuilder-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.np-formbuilder-grid {
    display: flex;
    flex-wrap: wrap;
    margin-left: -.5rem;
    margin-right: -.5rem;
    row-gap: .15rem;
}

.np-formbuilder-col {
    padding-left: .5rem;
    padding-right: .5rem;
    box-sizing: border-box;
}

.np-formbuilder-col-half {
    width: 50%;
}

.np-formbuilder-col-full {
    width: 100%;
}

.np-formbuilder-group {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.np-formbuilder-label {
    margin: 0;
    color: #334155;
    font-size: .84rem;
    font-weight: 700;
    letter-spacing: .01em;
}

.np-formbuilder-required {
    color: #c2484d;
}

.np-formbuilder-control {
    width: 100%;
    padding: .82rem .95rem;
    border-radius: 1rem;
    border: 1px solid rgba(15,23,42,.10);
    background: rgba(255,255,255,.96);
    box-shadow: inset 0 1px 2px rgba(15,23,42,.02);
    color: #0f172a;
    font-size: .92rem;
    font-weight: 500;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.np-formbuilder-control:focus {
    outline: none;
    border-color: rgba(15,23,42,.16);
    background: #fff;
    box-shadow:
        0 0 0 .22rem rgba(15,23,42,.05),
        inset 0 1px 2px rgba(15,23,42,.02);
}

.np-formbuilder-textarea {
    min-height: 150px;
    resize: vertical;
}

.np-formbuilder-file {
    padding: .78rem .85rem;
}

.np-formbuilder-upload {
    padding: .9rem;
    border: 1px dashed rgba(15,23,42,.14);
    border-radius: 1rem;
    background: #fbfcfe;
}

.np-formbuilder-help {
    color: #64748b;
    font-size: .78rem;
    line-height: 1.55;
    margin-top: .45rem;
}

.np-formbuilder-choice-group {
    display: flex;
    flex-direction: column;
    gap: .7rem;
    padding: .15rem 0;
}

.np-formbuilder-choice-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem .9rem;
    border-radius: 1rem;
    border: 1px solid rgba(15,23,42,.08);
    background: #fff;
    color: #334155;
    font-size: .9rem;
    font-weight: 500;
    transition:
        background .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.np-formbuilder-choice-card:hover {
    background: #f8fafc;
}

.np-formbuilder-choice-card input {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
}

.np-formbuilder-choice-single {
    padding: .9rem;
}

.np-formbuilder-error {
    color: #b42318;
    font-size: .82rem;
    font-weight: 600;
}

.np-formbuilder-success {
    margin-bottom: 1rem;
    padding: .95rem 1rem;
    border: 1px solid rgba(22,163,74,.18);
    border-radius: 1rem;
    background: linear-gradient(180deg, #ecfdf3 0%, #dcfce7 100%);
    color: #166534;
    font-size: .9rem;
    font-weight: 600;
}

.np-formbuilder-submit-wrap {
    display: flex;
    justify-content: flex-end;
    padding-top: .35rem;
}

.np-formbuilder-submit {
    min-height: 46px;
    border: 0;
    border-radius: .95rem;
    padding: .8rem 1.15rem;
    background: #0f172a;
    color: #fff;
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .01em;
    box-shadow: 0 10px 22px rgba(15,23,42,.16);
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.np-formbuilder-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(15,23,42,.22);
    background: #111827;
}

@media (max-width: 767.98px) {
    .np-formbuilder-card-body {
        padding: 1rem;
    }

    .np-formbuilder-shell {
        padding: .9rem;
    }

    .np-formbuilder-col-half,
    .np-formbuilder-col-full {
        width: 100%;
    }

    .np-formbuilder-submit-wrap {
        justify-content: stretch;
    }

    .np-formbuilder-submit {
        width: 100%;
    }
}
