*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;background:#f3f6fb;color:#1f2937;-webkit-text-size-adjust:100%}
.top{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;padding:22px 16px 46px;text-align:center}
.brand{font-size:22px;font-weight:700;letter-spacing:1px}
.sub{opacity:.85;font-size:13px;margin-top:4px}
.wrap{max-width:560px;margin:-30px auto 0;padding:0 12px}
.card{background:#fff;border-radius:14px;box-shadow:0 4px 18px rgba(15,23,42,.07);padding:16px;margin-bottom:12px}
.tabs{display:flex;background:#fff;border-radius:12px;padding:4px;margin-bottom:12px;box-shadow:0 4px 18px rgba(15,23,42,.07)}
.tab{flex:1;border:0;background:none;padding:10px;border-radius:9px;font-size:15px;color:#475569;cursor:pointer}
.tab.active{background:#2563eb;color:#fff;font-weight:600}
.label{display:block;font-weight:600;margin:6px 0 8px;font-size:14px}
.row{display:flex;gap:8px}
input[type=text]{flex:1;min-width:0;border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;font-size:16px;background:#f8fafc;outline:none}
input[type=text]:focus{border-color:#2563eb;background:#fff}
.btn{border:1px solid #cbd5e1;background:#fff;color:#1f2937;border-radius:10px;padding:10px 16px;font-size:15px;cursor:pointer;white-space:nowrap}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.primary{background:#2563eb;border-color:#2563eb;color:#fff;font-weight:600}
.btn.danger{color:#dc2626;border-color:#fecaca}
.btn.ghost{background:transparent}
.btn.small{padding:4px 10px;font-size:13px;border-radius:8px}
.btn.block{display:block;width:100%;margin:12px 0 4px;padding:12px}
.hint{color:#64748b;font-size:13px;margin:10px 0 0}
.hint.top0{margin-top:0}
.muted{color:#64748b}.small{font-size:12px}
.hidden{display:none!important}
.balance{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.balance strong{font-size:22px;color:#2563eb}
.lease{border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin-top:12px;background:#fbfdff}
.lease .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.badge{display:inline-block;font-size:12px;padding:2px 10px;border-radius:999px;background:#e0e7ff;color:#3730a3}
.badge.ok{background:#dcfce7;color:#166534}.badge.end{background:#f1f5f9;color:#64748b}.badge.err{background:#fee2e2;color:#991b1b}
.kv{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px dashed #e2e8f0}
.kv:first-of-type{border-top:0}
.kv .k{width:64px;color:#64748b;font-size:13px;flex:none}
.kv .v{flex:1;font-size:18px;font-weight:600;word-break:break-all;font-variant-numeric:tabular-nums}
.kv .v.code{font-size:28px;color:#16a34a;letter-spacing:3px}
.kv .v.wait{font-size:14px;font-weight:400;color:#64748b}
.actions{display:flex;gap:8px;margin-top:8px}
.actions .btn{flex:1}
.note{font-size:12px;color:#b45309;margin:6px 0 0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:rgba(15,23,42,.9);color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;max-width:90vw;z-index:10;text-align:center}
.tips h3{margin:0 0 6px;font-size:15px}
.tips ol{margin:0;padding-left:20px;color:#475569;font-size:13px}
.history summary{cursor:pointer;color:#475569;font-size:13px;margin-top:12px}
.hrow{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:6px 0;border-bottom:1px solid #f1f5f9}
.phones{border:1px solid #e2e8f0;border-radius:10px;margin:10px 0;max-height:240px;overflow:auto}
.phones label{display:flex;gap:8px;padding:10px;border-bottom:1px solid #f1f5f9;font-size:14px;cursor:pointer}
.phones label.off{color:#94a3b8;cursor:not-allowed}
.foot{text-align:center;padding:10px 12px 30px}
.qq{font-size:15px;margin-bottom:4px}
.spin{display:inline-block;width:12px;height:12px;border:2px solid #94a3b8;border-top-color:transparent;border-radius:50%;animation:s 1s linear infinite;vertical-align:-1px;margin-right:6px}
@keyframes s{to{transform:rotate(360deg)}}
