*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0f1117;color:#e1e4e8;min-height:100vh}.app{max-width:1100px;margin:0 auto;padding:24px}.header{text-align:center;margin-bottom:32px}.header h1{font-size:24px;color:#58a6ff;margin-bottom:8px}.header code{background:#1c2128;padding:2px 8px;border-radius:4px;font-size:14px;color:#7ee787}.config-panel{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:20px;margin-bottom:24px}.config-panel h2{font-size:16px;color:#58a6ff;margin-bottom:16px}.config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:8px}.config-grid label{display:flex;flex-direction:column;font-size:12px;color:#8b949e;gap:4px}.config-grid input{background:#0d1117;border:1px solid #30363d;border-radius:4px;padding:8px 10px;color:#e1e4e8;font-size:13px}.config-grid input:focus{outline:none;border-color:#58a6ff}.flow-section{margin-bottom:24px}.flow-section h2{font-size:18px;color:#58a6ff;margin-bottom:16px}.flow-steps{display:flex;flex-direction:column;gap:12px}.step-card{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:16px;transition:border-color .2s}.step-card.done{border-color:#238636}.step-card.loading{border-color:#d29922;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.step-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.step-num{width:28px;height:28px;background:#1f6feb;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.step-header strong{font-size:15px}.step-header small{display:block;font-size:12px;color:#8b949e;margin-top:2px}.badge{font-size:11px;padding:2px 8px;border-radius:10px;margin-left:auto}.badge.ok{background:#238636;color:#fff}.badge.err{background:#da3633;color:#fff}.step-btn{background:#238636;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer;font-size:13px}.step-btn:hover{background:#2ea043}.step-btn:disabled{background:#30363d;cursor:not-allowed}.step-result{margin-top:12px}.step-result details{margin-bottom:8px}.step-result summary{color:#8b949e;cursor:pointer;font-size:13px;margin-bottom:4px}.step-result pre{background:#0d1117;border:1px solid #30363d;border-radius:4px;padding:12px;font-size:12px;overflow-x:auto;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.log-section{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:20px}.log-section h2{font-size:16px;color:#58a6ff;margin-bottom:16px}.log-list{max-height:400px;overflow-y:auto}.log-item{padding:8px 0;border-bottom:1px solid #21262d;font-size:12px}.log-time{color:#484f58;margin-right:8px}.log-step{color:#58a6ff;margin-right:8px}.log-type{padding:1px 6px;border-radius:3px;font-size:11px}.log-request .log-type{background:#1f6feb33;color:#58a6ff}.log-response .log-type{background:#23863633;color:#3fb950}.log-error .log-type{background:#da363333;color:#f85149}.log-data{margin-top:4px;background:#0d1117;padding:8px;border-radius:4px;white-space:pre-wrap;word-break:break-all;max-height:150px;overflow-y:auto;font-size:11px;color:#8b949e}.order-panel{background:linear-gradient(135deg,#1a1f35,#161b22);border:2px solid #1f6feb;border-radius:12px;padding:24px;margin-bottom:24px;text-align:center}.order-panel h2{font-size:20px;color:#58a6ff;margin-bottom:8px}.order-desc{color:#8b949e;font-size:14px;margin-bottom:16px}.order-btn{background:linear-gradient(135deg,#1f6feb,#58a6ff);color:#fff;border:none;border-radius:8px;padding:14px 40px;font-size:16px;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s}.order-btn:hover{transform:translateY(-2px);box-shadow:0 4px 20px #1f6feb66}.order-btn:disabled{background:#30363d;transform:none;box-shadow:none;cursor:not-allowed}.order-result{margin-top:20px;padding-top:20px;border-top:1px solid #30363d}.order-info-row{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:20px;font-size:14px}.order-info-row code{background:#0d1117;padding:2px 8px;border-radius:4px;color:#7ee787;font-size:13px}.order-info-row strong{color:#f0883e}.qr-section{margin:16px 0}.qr-code{background:#fff;padding:12px;border-radius:12px;width:220px;height:220px}.qr-section p{margin-top:8px;color:#8b949e;font-size:13px}.pay-link a{color:#58a6ff;font-size:14px;text-decoration:none}.pay-link a:hover{text-decoration:underline}.pay-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#1a1f35,#0f1117);padding:20px}.pay-card{background:#161b22;border:1px solid #30363d;border-radius:16px;padding:32px 24px;max-width:380px;width:100%;text-align:center}.pay-logo{font-size:20px;font-weight:700;color:#58a6ff;margin-bottom:16px}.pay-card h2{font-size:18px;color:#e1e4e8;margin-bottom:24px}.pay-info{margin-bottom:28px}.pay-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #21262d;font-size:14px}.pay-row span{color:#8b949e}.pay-row strong{color:#e1e4e8}.pay-amount{font-size:22px!important;color:#f0883e!important}.pay-btn{width:100%;background:linear-gradient(135deg,#238636,#2ea043);color:#fff;border:none;border-radius:10px;padding:16px;font-size:18px;font-weight:700;cursor:pointer;transition:transform .2s}.pay-btn:hover{transform:scale(1.02)}.pay-btn:disabled{background:#30363d;transform:none;cursor:not-allowed}.pay-result{margin-top:16px}.pay-result-badge{padding:10px 20px;border-radius:8px;font-size:15px;font-weight:700;margin-bottom:12px}.pay-result-badge.ok{background:#23863633;color:#3fb950;border:1px solid #238636}.pay-result-badge.err{background:#da363333;color:#f85149;border:1px solid #da3633}.pay-result pre{background:#0d1117;padding:12px;border-radius:6px;font-size:11px;text-align:left;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto;color:#8b949e}.pay-loading,.pay-error{color:#8b949e;font-size:16px}@media (max-width: 600px){.app{padding:12px}.header h1{font-size:18px}.config-grid{grid-template-columns:1fr 1fr}.order-info-row{flex-direction:column;align-items:center;gap:8px}.pay-card{padding:24px 16px}}
