:root{--cd-bg: #f4f6fb;--cd-panel: #ffffff;--cd-border: #e5e8f0;--cd-text: #1a1d27;--cd-muted: #6b7280;--cd-primary: #4f6ef7;--cd-primary-soft: #eef1ff;--cd-danger: #e5484d;--cd-success: #30a46c;--cd-warn: #f5a623;--cd-sidebar-bg: #10121a;--cd-sidebar-text: #9aa1b2;--cd-sidebar-active: #ffffff;--cd-code-bg: #0d1117;--cd-radius: 10px;--cd-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--cd-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--cd-bg);color:var(--cd-text);font-family:var(--cd-font);font-size:14px}#app{min-height:100vh}.cd-shell{display:flex;min-height:100vh}.cd-sidebar{width:224px;flex-shrink:0;background:var(--cd-sidebar-bg);color:var(--cd-sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.cd-brand{display:flex;align-items:center;gap:10px;padding:20px 20px 16px;color:#fff;font-weight:700;font-size:15px;letter-spacing:.5px}.cd-brand .logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#4f6ef7,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:13px}.cd-nav{flex:1;padding:8px 12px}.cd-nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--cd-sidebar-text);text-decoration:none;font-size:13.5px;margin-bottom:2px;transition:background .15s}.cd-nav a:hover{background:#ffffff0f;color:#fff}.cd-nav a.router-link-active{background:#4f6ef72e;color:var(--cd-sidebar-active)}.cd-nav .nav-icon{width:18px;text-align:center;opacity:.85}.cd-sidebar-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.06);font-size:12px}.cd-sidebar-footer .merchant-name{color:#fff;font-weight:600;margin-bottom:4px}.cd-sidebar-footer .merchant-key{font-family:var(--cd-mono);font-size:11px;color:var(--cd-sidebar-text);word-break:break-all}.cd-sidebar-footer .logout{margin-top:10px;color:var(--cd-danger);cursor:pointer;background:none;border:none;font-size:12.5px;padding:0}.cd-main{flex:1;min-width:0;padding:24px 28px}.cd-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.cd-topbar h1{font-size:20px;margin:0}.cd-topbar .sub{color:var(--cd-muted);font-size:13px;margin-top:4px}.cd-card{background:var(--cd-panel);border:1px solid var(--cd-border);border-radius:var(--cd-radius);padding:20px;margin-bottom:16px}.cd-card-title{font-size:15px;font-weight:600;margin:0 0 12px}.cd-btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:8px;padding:9px 16px;font-size:13.5px;cursor:pointer;font-family:var(--cd-font);transition:opacity .15s,background .15s}.cd-btn:disabled{opacity:.5;cursor:not-allowed}.cd-btn-primary{background:var(--cd-primary);color:#fff}.cd-btn-primary:hover:not(:disabled){background:#3f5ce0}.cd-btn-ghost{background:transparent;color:var(--cd-primary);border:1px solid var(--cd-primary)}.cd-btn-ghost:hover:not(:disabled){background:var(--cd-primary-soft)}.cd-btn-danger{background:transparent;color:var(--cd-danger);border:1px solid var(--cd-danger)}.cd-btn-danger:hover:not(:disabled){background:#fdf0f0}.cd-btn-sm{padding:5px 10px;font-size:12.5px}.cd-input,.cd-select,.cd-textarea{width:100%;border:1px solid var(--cd-border);border-radius:8px;padding:9px 12px;font-size:13.5px;font-family:var(--cd-font);color:var(--cd-text);background:#fff;outline:none}.cd-input:focus,.cd-select:focus,.cd-textarea:focus{border-color:var(--cd-primary);box-shadow:0 0 0 3px #4f6ef71f}.cd-label{display:block;font-size:12.5px;color:var(--cd-muted);margin-bottom:6px;font-weight:500}.cd-table{width:100%;border-collapse:collapse}.cd-table th{text-align:left;font-size:12px;color:var(--cd-muted);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--cd-border);white-space:nowrap}.cd-table td{padding:11px 12px;border-bottom:1px solid var(--cd-border);font-size:13.5px;vertical-align:middle}.cd-table tbody tr:hover{background:#fafbfe}.cd-table tr:last-child td{border-bottom:none}.cd-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:500}.cd-badge.active,.cd-badge.paid,.cd-badge.success{background:#e7f7ef;color:var(--cd-success)}.cd-badge.deleted,.cd-badge.failed,.cd-badge.quarantine{background:#fdecec;color:var(--cd-danger)}.cd-badge.pending{background:#fff4e5;color:var(--cd-warn)}.cd-badge.default{background:var(--cd-primary-soft);color:var(--cd-primary)}.cd-mono{font-family:var(--cd-mono);font-size:12.5px}.cd-code{background:var(--cd-code-bg);color:#e6edf3;border-radius:8px;padding:14px;font-family:var(--cd-mono);font-size:12.5px;overflow-x:auto;line-height:1.6;white-space:pre-wrap;word-break:break-all}.cd-secret-box{margin-top:14px;padding:12px;background:#f7f8fc;border:1px dashed var(--cd-border);border-radius:8px;font-size:13px}.cd-empty{text-align:center;color:var(--cd-muted);padding:28px;font-size:13px}.cd-error{color:var(--cd-danger);font-size:13px;margin:8px 0}.cd-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cd-form-item{margin-bottom:14px}.cd-link{color:var(--cd-primary);cursor:pointer;background:none;border:none;font-size:13px;padding:0;font-family:var(--cd-font)}.cd-link.danger{color:var(--cd-danger)}.cd-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 20% -10%,#1e2436,#0f1117)}.cd-login-card{width:380px;background:#fff;border-radius:14px;padding:32px;box-shadow:0 20px 60px #00000040}.cd-login-card .brand{display:flex;align-items:center;gap:10px;margin-bottom:6px}.cd-login-card .brand .logo{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#4f6ef7,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}.cd-login-card h1{font-size:18px;margin:0}.cd-login-card .hint{color:var(--cd-muted);font-size:13px;margin:4px 0 22px}.cd-login-card .reg{margin:16px 0 0;font-size:12px;color:var(--cd-muted);text-align:center}.cd-login-card .reg a{color:var(--cd-primary);text-decoration:none}@media (max-width: 900px){.cd-sidebar{width:64px}.cd-brand span.txt,.cd-nav a span.txt{display:none}.cd-main{padding:16px}.cd-grid-2{grid-template-columns:1fr}}
