:root{--bg:#f4f6f8;--card:#ffffff;--ink:#16202a;--muted:#64748b;--line:#e2e8f0;--brand:#16a34a;--brand-dark:#15803d;--danger:#dc2626;--warn:#b45309;--radius:12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Tahoma,sans-serif;font-size:16px;line-height:1.6}.wrap{max-width:900px;margin:0 auto;padding:24px 16px 64px}.narrow{max-width:420px}header.bar{background:var(--card);border-bottom:1px solid var(--line);padding:14px 16px}header.bar .inner{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}header.bar strong{font-size:15px}header.bar nav{display:flex;gap:14px;align-items:center}header.bar a{color:var(--muted);text-decoration:none;font-size:14px}header.bar a:hover{color:var(--ink)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}h1{font-size:22px;margin:0 0 4px}h2{font-size:17px;margin:0 0 14px}.sub{color:var(--muted);margin:0 0 20px}.sub,label{font-size:14px}label{display:block;font-weight:600;margin:14px 0 6px}.hint{font-weight:400;color:var(--muted);font-size:13px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}input.code{font-size:26px;letter-spacing:10px;text-align:center;padding:14px;direction:ltr}button{margin-top:18px;width:100%;background:var(--brand);color:#fff;border:0;padding:12px 16px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer}button:hover{background:var(--brand-dark)}button.ghost{background:transparent;color:var(--danger);border:1px solid var(--line);margin:0;width:auto;padding:6px 12px;font-size:13px}.msg{padding:11px 14px;border-radius:8px;font-size:14px;margin-bottom:16px}.msg.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.msg.ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.msg.warn{background:#fffbeb;color:var(--warn);border:1px solid #fde68a}.result{border:2px solid var(--brand);background:#f0fdf4;border-radius:var(--radius);padding:18px;margin-bottom:20px}.result .link{direction:ltr;text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;padding:11px;font-size:13px;word-break:break-all;margin:10px 0}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions a,.actions button{flex:1 1;min-width:130px;margin:0;text-align:center;text-decoration:none;padding:10px 14px;border-radius:8px;font-size:14px;font-weight:600;background:var(--brand);color:#fff;border:0;cursor:pointer}.actions a.wa{background:#25d366}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:right;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:13px}td.num{direction:ltr;text-align:right}.tag,td.num{white-space:nowrap}.tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.tag.paid{background:#dcfce7;color:#166534}.tag.pending{background:#fef9c3;color:#854d0e}.tag.failed{background:#fee2e2;color:#991b1b}.tag.expired{background:#f1f5f9;color:#475569}.empty{color:var(--muted);padding:36px 12px;font-size:14px}.codebox,.empty{text-align:center}.codebox{font-size:22px;letter-spacing:6px;direction:ltr;background:#f8fafc;border:1px dashed var(--brand);border-radius:8px;padding:12px;font-weight:700;margin:10px 0}@media (max-width:560px){td.hide,th.hide{display:none}}