.nsp-panel {
	max-width: 900px;
	margin: 20px auto;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	color: #1f2937;
}

.nsp-login-required {
	max-width: 420px;
	padding: 24px;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	background: #fff;
}

.nsp-auth-box {
	max-width: 420px;
	padding: 24px;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	background: #fff;
}
.nsp-auth-tabs {
	display: flex;
	gap: 4px;
	border-bottom: 2px solid #e2e8f0;
	margin-bottom: 18px;
}
.nsp-auth-tab-btn {
	background: none;
	border: none;
	padding: 8px 6px;
	margin-right: 18px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: #64748b;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
}
.nsp-auth-tab-btn.active { color: #2563eb; border-bottom-color: #2563eb; }
.nsp-auth-tab-content { display: none; }
.nsp-auth-tab-content.active { display: block; }
.nsp-auth-tab-content label {
	display: block;
	margin: 12px 0 6px;
	font-size: 13px;
	font-weight: 600;
	color: #374151;
}
.nsp-auth-tab-content input[type="text"],
.nsp-auth-tab-content input[type="email"],
.nsp-auth-tab-content input[type="password"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	font-size: 14px;
	box-sizing: border-box;
}
.nsp-auth-tab-content #nsp-register-form .nsp-btn { width: 100%; }
.nsp-auth-tab-content form p.login-remember,
.nsp-auth-tab-content form p.login-submit { margin-top: 14px; }
.nsp-auth-tab-content form input[type="submit"] {
	width: 100%;
	background: #2563eb;
	color: #fff;
	border: none;
	padding: 11px 22px;
	border-radius: 8px;
	font-weight: 600;
	cursor: pointer;
	font-size: 14px;
}
.nsp-auth-tab-content form input[type="submit"]:hover { background: #1d4ed8; }
.nsp-register-link { margin-top: 14px; font-size: 13px; }

.nsp-wallet-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: linear-gradient(135deg,#2563eb,#1d4ed8);
	color: #fff;
	padding: 16px 20px;
	border-radius: 10px;
	margin-bottom: 20px;
}
.nsp-wallet-label { font-size: 14px; opacity: .85; }
.nsp-wallet-amount { font-size: 22px; font-weight: 700; }

.nsp-tabs {
	display: flex;
	gap: 4px;
	border-bottom: 2px solid #e2e8f0;
	margin-bottom: 20px;
}
.nsp-tab-btn {
	background: none;
	border: none;
	padding: 10px 18px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: #64748b;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
}
.nsp-tab-btn.active {
	color: #2563eb;
	border-bottom-color: #2563eb;
}

.nsp-tab-content { display: none; }
.nsp-tab-content.active { display: block; }

.nsp-tab-content form label {
	display: block;
	margin: 12px 0 6px;
	font-size: 13px;
	font-weight: 600;
	color: #374151;
}
.nsp-tab-content form input[type="text"],
.nsp-tab-content form input[type="number"],
.nsp-tab-content form select,
.nsp-tab-content form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	font-size: 14px;
	box-sizing: border-box;
}

.nsp-service-meta { font-size: 12px; color: #6b7280; margin: 4px 0 0; }
#nsp-service-search { margin-bottom: 8px; }
.nsp-service-empty { font-size: 13px; color: #9ca3af; padding: 8px 0; }
.nsp-price-preview { margin-top: 14px; font-size: 14px; }

.nsp-btn {
	margin-top: 18px;
	background: #2563eb;
	color: #fff;
	border: none;
	padding: 11px 22px;
	border-radius: 8px;
	font-weight: 600;
	cursor: pointer;
	font-size: 14px;
}
.nsp-btn:hover { background: #1d4ed8; }
.nsp-btn:disabled { opacity: .6; cursor: not-allowed; }

.nsp-form-message { margin-top: 12px; font-size: 13px; }
.nsp-form-message.success { color: #16a34a; }
.nsp-form-message.error { color: #dc2626; }

.nsp-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.nsp-table th, .nsp-table td {
	text-align: left;
	padding: 10px;
	border-bottom: 1px solid #e5e7eb;
}
.nsp-table th { background: #f8fafc; font-weight: 600; }

.nsp-refresh-btn {
	background: #eef2ff;
	color: #4338ca;
	border: none;
	padding: 5px 10px;
	border-radius: 6px;
	cursor: pointer;
	font-size: 12px;
}

.nsp-badge {
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
}
.nsp-badge-pending { background: #fef3c7; color: #92400e; }
.nsp-badge-approved { background: #dcfce7; color: #166534; }
.nsp-badge-rejected { background: #fee2e2; color: #991b1b; }

.nsp-payment-instructions {
	background: #f8fafc;
	border: 1px dashed #cbd5e1;
	border-radius: 8px;
	padding: 14px 16px;
	margin-bottom: 20px;
}
.nsp-payment-instructions pre {
	white-space: pre-wrap;
	font-family: inherit;
	font-size: 13px;
	margin: 8px 0 0;
}
