:root{--sp-primary: #4B5DFF;--sp-primary-gradient: linear-gradient(135deg, #4B5DFF 0%, #7C3AED 100%);--sp-grad-dark: linear-gradient(180deg, #0F1220 0%, #1E2A45 100%);--sp-success: #22C55E;--sp-warning: #F59E0B;--sp-danger: #EF4444;--sp-usdt: #26A17B;--sp-bg: #0F1220;--sp-bg-alt: #1E2A45;--sp-surface: #FFFFFF;--sp-text: #111827;--sp-text-muted: #6B7280;--sp-line: #E5E7EB;--sp-radius-sm: 8px;--sp-radius: 12px;--sp-radius-lg: 20px;--sp-shadow: 0 4px 20px rgba(17, 24, 39, .08);--sp-shadow-lg: 0 12px 40px rgba(75, 93, 255, .18)}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%}body{font-family:PingFang SC,Microsoft YaHei,Segoe UI,Arial,sans-serif;background:#f5f6fa;color:var(--sp-text);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}a{color:inherit;text-decoration:none}.sp-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border:none;border-radius:var(--sp-radius-sm);font-size:14px;font-weight:600;background:var(--sp-primary-gradient);color:#fff;transition:opacity .2s}.sp-btn:hover{opacity:.9}.sp-btn:disabled{opacity:.5;cursor:not-allowed}.sp-btn-ghost{display:inline-flex;align-items:center;padding:10px 18px;border:1px solid var(--sp-line);border-radius:var(--sp-radius-sm);font-size:14px;font-weight:500;background:#fff;color:var(--sp-text)}.sp-btn-ghost:hover{border-color:var(--sp-primary);color:var(--sp-primary)}.sp-card{background:var(--sp-surface);border-radius:var(--sp-radius);box-shadow:var(--sp-shadow);padding:24px}.sp-input{width:100%;padding:10px 14px;border:1px solid var(--sp-line);border-radius:var(--sp-radius-sm);font-size:14px;outline:none}.sp-input:focus{border-color:var(--sp-primary);box-shadow:0 0 0 3px #4b5dff1f}.sp-label{display:block;margin-bottom:6px;font-size:13px;color:var(--sp-text-muted)}.sp-page-title{font-size:20px;font-weight:700;margin-bottom:16px}.sp-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.sp-toolbar .sp-input,.sp-toolbar select.sp-input{width:auto}.sp-card-nopad{background:var(--sp-surface);border-radius:var(--sp-radius);box-shadow:var(--sp-shadow);overflow:auto}.sp-table{width:100%;border-collapse:collapse}.sp-table th,.sp-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--sp-line);font-size:14px}.sp-table th{color:var(--sp-text-muted);font-weight:500;white-space:nowrap;background:#fafbfc}.sp-table tbody tr:hover td{background:#f8f9ff}.sp-badge{padding:3px 8px;border-radius:6px;font-size:12px;background:#e5e7eb;color:#374151}.sp-badge.active,.sp-badge.success,.sp-badge.paid,.sp-badge.confirmed{background:#22c55e26;color:#16a34a}.sp-badge.pending,.sp-badge.created,.sp-badge.reviewing,.sp-badge.accrued{background:#f59e0b26;color:#b45309}.sp-badge.failed,.sp-badge.expired,.sp-badge.suspended,.sp-badge.rejected,.sp-badge.quarantine{background:#ef444426;color:#b91c1c}.sp-badge.processing,.sp-badge.observed,.sp-badge.direct{background:#4b5dff26;color:#4b5dff}.sp-badge.platform,.sp-badge.disabled{background:#7c3aed26;color:#6d28d9}.sp-btn.sm{padding:6px 12px;font-size:13px;margin-right:6px}.sp-btn.warn{background:#f59e0b}.sp-btn.danger{background:#ef4444}.sp-btn.ghost-btn{background:transparent;border:1px solid var(--sp-line);color:var(--sp-text)}.sp-empty{color:var(--sp-text-muted);text-align:center;padding:24px}.sp-error{color:var(--sp-danger);margin-bottom:12px}.sp-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:18px}.sp-kpi{background:var(--sp-surface);border-radius:var(--sp-radius);box-shadow:var(--sp-shadow);padding:18px;display:flex;flex-direction:column}.sp-kpi .v{font-size:24px;font-weight:700;color:var(--sp-primary)}.sp-kpi .l{font-size:12px;color:var(--sp-text-muted);margin-top:6px}.sp-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f122080;display:flex;align-items:center;justify-content:center;z-index:100}.sp-modal{background:#fff;border-radius:var(--sp-radius);box-shadow:var(--sp-shadow-lg);padding:24px;width:460px;max-width:92vw;max-height:88vh;overflow:auto}.sp-modal h3{font-size:17px;margin-bottom:16px}.sp-form-field{margin-bottom:14px}.sp-form-field label{display:block;font-size:13px;color:var(--sp-text-muted);margin-bottom:6px}.sp-form-field .sp-input{width:100%}.sp-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.sp-section-title{font-size:15px;font-weight:600;margin:22px 0 12px}
