/* Wrapper */
.nsb-wrapper {
    padding: 40px 15px;
    background: #f4f6fb;
}

/* Card */
.nsb-card {
    max-width: 620px;
    margin: auto;
    background: #fff;
    border-radius: 14px;
    padding: 30px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.08);
    font-family: system-ui, -apple-system, BlinkMacSystemFont;
}

/* Header */
.nsb-header h2 {
    margin: 0;
    font-size: 26px;
}

.nsb-header p {
    margin: 6px 0 25px;
    color: #6b7280;
}

/* Grid */
.nsb-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.nsb-grid .full {
    grid-column: span 2;
}

/* Floating Input */
.nsb-input {
    position: relative;
}

.nsb-input input,
.nsb-input textarea,
.nsb-input select {
    width: 100%;
    padding: 14px 12px;
    border-radius: 8px;
    border: 1px solid #d1d5db;
    font-size: 14px;
    background: #fff;
}

.nsb-input textarea {
    min-height: 90px;
    resize: vertical;
}

.nsb-input label {
    position: absolute;
    top: 50%;
    left: 12px;
    background: #fff;
    padding: 0 6px;
    color: #6b7280;
    font-size: 13px;
    transform: translateY(-50%);
    pointer-events: none;
    transition: 0.2s ease;
}

/* Floating effect */
.nsb-input input:focus + label,
.nsb-input input:not(:placeholder-shown) + label,
.nsb-input textarea:focus + label,
.nsb-input textarea:not(:placeholder-shown) + label,
.nsb-input select:focus + label {
    top: -6px;
    font-size: 12px;
    color: #2563eb;
}

/* OTP Row */
.nsb-otp-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

#nsb-send-otp {
    padding: 10px 16px;
    border-radius: 8px;
    border: none;
    background: #eef2ff;
    color: #3730a3;
    font-weight: 600;
    cursor: pointer;
}

.nsb-hint {
    font-size: 12px;
    color: #6b7280;
}

/* Submit */
.nsb-submit {
    width: 100%;
    margin-top: 25px;
    padding: 14px;
    border-radius: 10px;
    border: none;
    font-size: 16px;
    background: linear-gradient(135deg,#2563eb,#4f46e5);
    color: #fff;
    cursor: pointer;
}

/* Messages */
#nsb-msg {
    margin-top: 18px;
}

.nsb-alert {
    padding: 14px;
    border-radius: 8px;
    font-size: 14px;
}

.nsb-success {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #065f46;
}

.nsb-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #7f1d1d;
}

.nsb-info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
}

/* Mobile */
@media(max-width: 640px){
    .nsb-grid {
        grid-template-columns: 1fr;
    }
}
