/* Software Point Vendor Marketplace Pro — Frontend (Glass UI, dark/light) */

.spvmp-app {
	--v-primary: #2563eb;
	--v-primary-2: #1d4ed8;
	--v-accent: #06b6d4;
	--v-green: #16a34a;
	--v-amber: #f59e0b;
	--v-red: #ef4444;
	--v-bg: #eef2f7;
	--v-panel: rgba(255,255,255,0.7);
	--v-panel-solid: #ffffff;
	--v-border: rgba(255,255,255,0.6);
	--v-line: rgba(15,23,42,0.08);
	--v-text: #0f172a;
	--v-muted: #64748b;
	--v-shadow: 0 12px 34px rgba(15,23,42,0.10);
	--v-radius: 18px;

	position:relative; color:var(--v-text); font-size:15px; line-height:1.5;
	background:
		radial-gradient(1000px 500px at 100% -10%, rgba(37,99,235,0.10), transparent 60%),
		radial-gradient(800px 420px at -10% 110%, rgba(6,182,212,0.10), transparent 55%),
		var(--v-bg);
	padding:22px; border-radius:var(--v-radius);
}
.spvmp-app[data-theme="dark"] {
	--v-bg:#0b1120; --v-panel:rgba(30,41,59,0.62); --v-panel-solid:#111827;
	--v-border:rgba(148,163,184,0.16); --v-line:rgba(148,163,184,0.16);
	--v-text:#e5edf7; --v-muted:#94a3b8; --v-shadow:0 12px 34px rgba(0,0,0,0.4);
}
.spvmp-app * { box-sizing:border-box; }
.spvmp-app a { color:var(--v-primary); text-decoration:none; }

/* Topbar */
.spvmp-topbar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.spvmp-brand { display:flex; align-items:center; gap:12px; }
.spvmp-logo { width:46px; height:46px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--v-primary),var(--v-accent)); color:#fff; font-weight:700; font-size:20px; }
.spvmp-topbar h2 { margin:0; font-size:18px; font-weight:700; }
.spvmp-theme-toggle { cursor:pointer; border:1px solid var(--v-border); background:var(--v-panel); border-radius:999px; padding:8px 14px; font-size:13px; color:var(--v-text); backdrop-filter:blur(10px); }

/* Nav */
.spvmp-nav { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px; }
.spvmp-nav-item { padding:9px 16px; border-radius:999px; font-size:13.5px; font-weight:600; background:var(--v-panel); border:1px solid var(--v-border); color:var(--v-muted); }
.spvmp-nav-item.active { color:#fff; background:linear-gradient(135deg,var(--v-primary),var(--v-primary-2)); border-color:transparent; }

/* Panels */
.spvmp-panel { background:var(--v-panel); border:1px solid var(--v-border); border-radius:var(--v-radius); box-shadow:var(--v-shadow); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); padding:20px; }
.spvmp-panel h3 { margin:0 0 14px; font-size:16px; font-weight:700; }
.spvmp-panel-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.spvmp-panel-head h3 { margin:0; }
.spvmp-mt { margin-top:16px; }
.spvmp-muted { color:var(--v-muted); }

/* Grids */
.spvmp-grid { display:grid; gap:16px; }
.spvmp-grid-4 { grid-template-columns:repeat(4,1fr); }
.spvmp-grid-3 { grid-template-columns:repeat(3,1fr); }
.spvmp-grid-2 { grid-template-columns:repeat(2,1fr); }
@media (max-width:1000px){ .spvmp-grid-4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .spvmp-grid-4,.spvmp-grid-3,.spvmp-grid-2{grid-template-columns:1fr;} }

/* Metrics */
.spvmp-metric { background:var(--v-panel); border:1px solid var(--v-border); border-radius:14px; padding:16px; box-shadow:var(--v-shadow); backdrop-filter:blur(12px); display:flex; flex-direction:column; gap:3px; }
.spvmp-metric .m-ico { font-size:20px; }
.spvmp-metric .m-val { font-size:21px; font-weight:700; line-height:1.1; }
.spvmp-metric .m-lab { color:var(--v-muted); font-size:12.5px; }

/* Buttons */
.spvmp-btn { display:inline-block; cursor:pointer; border:none; border-radius:10px; padding:10px 18px; font-weight:600; font-size:14px; color:#fff; background:linear-gradient(135deg,var(--v-primary),var(--v-primary-2)); transition:.15s transform; }
.spvmp-btn:hover { transform:translateY(-1px); color:#fff; }
.spvmp-btn.ghost { background:transparent; color:var(--v-primary); border:1px solid var(--v-primary); }
.spvmp-btn.sm { padding:6px 12px; font-size:12.5px; }
.spvmp-btn.danger { background:linear-gradient(135deg,#ef4444,#dc2626); }
.spvmp-copy-btn { cursor:pointer; border:none; border-radius:10px; padding:9px 14px; font-weight:600; font-size:12.5px; color:#fff; background:linear-gradient(135deg,var(--v-primary),var(--v-primary-2)); }

/* Tables */
.spvmp-table { width:100%; border-collapse:collapse; font-size:13.5px; }
.spvmp-table th, .spvmp-table td { padding:10px 12px; text-align:left; border-bottom:1px solid var(--v-line); }
.spvmp-table th { color:var(--v-muted); font-weight:600; }
.spvmp-table tr:hover { background:rgba(37,99,235,0.04); }

/* Status pills */
.spvmp-status { display:inline-block; padding:2px 10px; border-radius:999px; font-size:12px; font-weight:600; }
.spvmp-status.pending  { background:rgba(245,158,11,.16); color:#b45309; }
.spvmp-status.approved,
.spvmp-status.completed { background:rgba(22,163,74,.16); color:#15803d; }
.spvmp-status.paid     { background:rgba(37,99,235,.16); color:#1d4ed8; }
.spvmp-status.rejected,
.spvmp-status.draft,
.spvmp-status.voided,
.spvmp-status.deleted  { background:rgba(239,68,68,.16); color:#b91c1c; }

/* Forms */
.spvmp-form-panel { max-width:760px; }
.spvmp-field { display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.spvmp-field span { font-size:13px; color:var(--v-muted); font-weight:600; }
.spvmp-field input, .spvmp-field select, .spvmp-field textarea {
	padding:10px 12px; border-radius:10px; border:1px solid var(--v-line);
	background:var(--v-panel-solid); color:var(--v-text); font-size:14px; width:100%;
}
.spvmp-check { display:inline-flex; align-items:center; gap:8px; font-size:14px; margin-bottom:10px; }
.spvmp-media-row { display:flex; gap:8px; align-items:center; }
.spvmp-media-row .spvmp-media-input { flex:1; }
.spvmp-aff-box { border:1px dashed var(--v-line); border-radius:12px; padding:14px; margin:12px 0; background:rgba(37,99,235,0.04); }
.spvmp-form-msg { margin-top:8px; font-size:13px; }
.spvmp-form-msg.ok { color:var(--v-green); }
.spvmp-form-msg.err { color:var(--v-red); }

/* Copy row */
.spvmp-copy-row { display:flex; gap:8px; }
.spvmp-link-input { flex:1; padding:8px 10px; border-radius:10px; border:1px solid var(--v-line); background:var(--v-panel-solid); color:var(--v-text); font-size:12.5px; min-width:180px; }

/* Notice */
.spvmp-notice { text-align:center; padding:32px; }
.spvmp-notice p { font-size:16px; margin-bottom:16px; }

/* CTA */
.spvmp-cta { border-radius:var(--v-radius); overflow:hidden; }
.spvmp-cta-inner {
	padding:48px 32px; text-align:center; color:#fff;
	background:linear-gradient(135deg,var(--v-primary),var(--v-accent));
	border-radius:var(--v-radius);
}
.spvmp-cta-inner h2 { margin:0 0 10px; font-size:28px; font-weight:800; }
.spvmp-cta-inner p { margin:0 auto 22px; max-width:560px; opacity:.94; font-size:16px; }
.spvmp-cta-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.spvmp-cta-actions .spvmp-btn { background:#fff; color:var(--v-primary); }
.spvmp-cta-actions .spvmp-btn.ghost { background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.8); }
.spvmp-load-more { margin-top:12px; }
