.toolbar[data-v-73ecad04]{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.card[data-v-73ecad04]{border:1px solid #ddd;border-radius:10px;padding:12px 14px;margin-bottom:10px;background:#fff}.row[data-v-73ecad04]{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:6px}.row[data-v-73ecad04]:first-child{margin-top:0}.btns[data-v-73ecad04]{justify-content:flex-start}.meta[data-v-73ecad04]{font-size:13px;color:#444;margin-top:8px;display:grid;gap:2px}.muted[data-v-73ecad04]{color:#888;font-size:13px;margin-left:8px}.main[data-v-73ecad04]{display:flex;align-items:center}.badge[data-v-73ecad04]{font-size:12px;margin-left:8px;padding:2px 8px;border-radius:10px;background:#e8f5e9;color:#0a6}.badge.expired[data-v-73ecad04]{background:#fdecea;color:#c00}.badge.logged_out[data-v-73ecad04]{background:#eee;color:#666}.error[data-v-73ecad04]{color:#c00;font-size:13px;margin-top:6px}.msg[data-v-73ecad04]{font-size:13px;color:#067}.busy[data-v-73ecad04]{font-size:13px;color:#888}.empty[data-v-73ecad04]{color:#888;padding:24px;text-align:center}button[data-v-73ecad04]{padding:7px 14px;cursor:pointer}button[data-v-73ecad04]:disabled{cursor:not-allowed;opacity:.6}button.danger[data-v-73ecad04]{color:#c00}button.ghost[data-v-73ecad04]{background:none;border:1px solid #ccc}.modal-mask[data-v-73ecad04]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center}.modal[data-v-73ecad04]{background:#fff;border-radius:12px;padding:20px;width:340px}.modal label[data-v-73ecad04]{display:block;margin:10px 0;font-size:14px}.modal input[data-v-73ecad04]{width:100%;margin-top:4px;padding:8px;box-sizing:border-box}.qrcode[data-v-73ecad04]{display:block;margin:12px auto;width:min(240px,64vw);height:auto;aspect-ratio:1}@media (max-width: 640px){.modal[data-v-73ecad04]{width:calc(100vw - 48px);max-height:86vh;overflow-y:auto}.toolbar button[data-v-73ecad04]{flex:1 1 40%;padding:9px 8px}.row.btns button[data-v-73ecad04]{flex:1;padding:9px 8px}.modal input[data-v-73ecad04],.modal button[data-v-73ecad04]{font-size:16px}}.toolbar[data-v-2ce71cdc]{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.toolbar input[data-v-2ce71cdc],.toolbar select[data-v-2ce71cdc]{padding:7px}.check[data-v-2ce71cdc]{font-size:13px;display:flex;gap:4px;align-items:center}.muted[data-v-2ce71cdc]{color:#888;font-size:13px}.empty[data-v-2ce71cdc]{color:#888;padding:24px;text-align:center}.group[data-v-2ce71cdc]{border:1px solid #ddd;border-radius:10px;margin-bottom:10px;background:#fff}.group-head[data-v-2ce71cdc]{display:flex;justify-content:space-between;gap:8px;padding:10px 14px;background:#f2f7f2;border-radius:10px 10px 0 0}.row[data-v-2ce71cdc]{display:flex;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid #eee}.row.used[data-v-2ce71cdc]{opacity:.62}.row .main[data-v-2ce71cdc]{flex:1}.code[data-v-2ce71cdc]{font-weight:600;word-break:break-all}.expired[data-v-2ce71cdc]{color:#c00}.state[data-v-2ce71cdc]{font-size:13px;color:#067;white-space:nowrap}button[data-v-2ce71cdc]{padding:7px 14px;cursor:pointer}@media (max-width: 640px){.toolbar input[data-v-2ce71cdc],.toolbar select[data-v-2ce71cdc]{flex:1 1 100%;font-size:16px}.toolbar button[data-v-2ce71cdc]{flex:1;padding:9px 8px}.group-head[data-v-2ce71cdc]{flex-direction:column;align-items:flex-start;gap:2px}.row .code[data-v-2ce71cdc]{font-size:14px}}h2[data-v-ecfd49e3]{margin:0 0 4px;font-size:19px}.toolbar[data-v-ecfd49e3]{display:flex;gap:8px;align-items:center;margin:12px 0;flex-wrap:wrap}.check[data-v-ecfd49e3]{font-size:13px;display:flex;gap:4px;align-items:center}.card[data-v-ecfd49e3]{border:1px solid #ddd;border-radius:10px;padding:12px 14px;margin-bottom:10px;background:#fff}.row.head[data-v-ecfd49e3]{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}textarea[data-v-ecfd49e3]{width:100%;box-sizing:border-box;font-family:monospace;font-size:13px}button[data-v-ecfd49e3]{padding:7px 14px;cursor:pointer}button[data-v-ecfd49e3]:disabled{cursor:not-allowed;opacity:.6}button.mark[data-v-ecfd49e3]{width:100%;padding:12px;margin-top:4px;background:#0a6;color:#fff;border:none;border-radius:8px;font-size:15px}button.primary[data-v-ecfd49e3]{background:#0a6;color:#fff;border:none;border-radius:8px}.msg[data-v-ecfd49e3]{font-size:13px;color:#067}.empty[data-v-ecfd49e3]{color:#888;padding:24px;text-align:center}.modal-mask[data-v-ecfd49e3]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center}.modal[data-v-ecfd49e3]{background:#fff;border-radius:12px;padding:20px;width:320px;max-height:70vh;overflow-y:auto}.modal label.acc[data-v-ecfd49e3]{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:14px}@media (max-width: 640px){.modal[data-v-ecfd49e3]{width:calc(100vw - 48px)}.toolbar button[data-v-ecfd49e3]{flex:1 1 40%;padding:9px 8px}textarea[data-v-ecfd49e3]{font-size:12px}}.modal .row.btns[data-v-ecfd49e3]{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}h2[data-v-b3176385]{margin:0 0 8px;font-size:19px}.card[data-v-b3176385]{border:1px solid #ddd;border-radius:10px;padding:12px 14px;margin-bottom:10px;background:#fff}.card h3[data-v-b3176385]{margin:0 0 4px;font-size:15px}.muted[data-v-b3176385]{color:#888;font-size:13px}textarea[data-v-b3176385],input[data-v-b3176385]{width:100%;box-sizing:border-box;margin:6px 0;padding:8px;font-family:monospace;font-size:13px}button[data-v-b3176385]{padding:7px 14px;cursor:pointer}.msg[data-v-b3176385]{font-size:13px;color:#067}@media (max-width: 640px){button[data-v-b3176385]{width:100%;padding:9px 8px}textarea[data-v-b3176385],input[data-v-b3176385]{font-size:14px}}h2[data-v-0a0cf21f]{margin:0 0 4px;font-size:19px}.muted[data-v-0a0cf21f]{color:#888;font-size:13px}.card[data-v-0a0cf21f]{border:1px solid #ddd;border-radius:10px;padding:12px 14px;margin-bottom:10px;background:#fff}.card h3[data-v-0a0cf21f]{margin:0 0 6px;font-size:15px}.form label[data-v-0a0cf21f]{display:block;margin:8px 0;font-size:14px}.form input[data-v-0a0cf21f],.form select[data-v-0a0cf21f]{width:100%;margin-top:4px;padding:8px;box-sizing:border-box}.row[data-v-0a0cf21f]{display:flex;gap:8px;align-items:center}.row.btns[data-v-0a0cf21f]{flex-wrap:wrap;margin-top:8px}.main[data-v-0a0cf21f]{display:flex;align-items:center;gap:8px;flex:1}.badge[data-v-0a0cf21f]{font-size:12px;padding:2px 8px;border-radius:10px;background:#eee;color:#666}.badge.admin[data-v-0a0cf21f]{background:#e8f0fe;color:#1a5fb4}.warn-tag[data-v-0a0cf21f]{font-size:12px;color:#a60}button[data-v-0a0cf21f]{padding:7px 14px;cursor:pointer}button[data-v-0a0cf21f]:disabled{cursor:not-allowed;opacity:.6}button.danger[data-v-0a0cf21f]{color:#c00}button.ghost[data-v-0a0cf21f]{background:none;border:1px solid #ccc}select[data-v-0a0cf21f]{padding:7px}.msg[data-v-0a0cf21f]{font-size:13px;color:#067;margin-top:8px}.error[data-v-0a0cf21f]{color:#c00;font-size:13px}.modal-mask[data-v-0a0cf21f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center}.modal[data-v-0a0cf21f]{background:#fff;border-radius:12px;padding:20px;width:320px}.modal label[data-v-0a0cf21f]{display:block;margin:10px 0;font-size:14px}.modal input[data-v-0a0cf21f]{width:100%;margin-top:4px;padding:8px;box-sizing:border-box}@media (max-width: 640px){.modal[data-v-0a0cf21f]{width:calc(100vw - 48px)}.row.btns button[data-v-0a0cf21f],.row.btns select[data-v-0a0cf21f]{flex:1 1 40%}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;background:#f5f6f5;color:#222;-webkit-text-size-adjust:100%}img{max-width:100%}.app[data-v-21b546e4]{max-width:860px;margin:0 auto;padding:12px 14px 60px}header[data-v-21b546e4]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}nav[data-v-21b546e4]{display:flex;gap:6px}nav button[data-v-21b546e4]{border:1px solid #ccc;background:#fff;padding:7px 14px;cursor:pointer;border-radius:8px}nav button.active[data-v-21b546e4]{background:#0a6;color:#fff;border-color:#0a6}.user[data-v-21b546e4]{margin-left:auto;display:flex;gap:6px;align-items:center}.muted[data-v-21b546e4]{color:#888;font-size:13px}button.ghost[data-v-21b546e4]{background:none;border:1px solid #ccc;padding:6px 10px;cursor:pointer;border-radius:8px}.warn[data-v-21b546e4]{background:#fff3cd;border:1px solid #e6c200;border-radius:8px;padding:10px 12px;margin-bottom:10px;font-size:14px}.modal-mask[data-v-21b546e4]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center}.modal[data-v-21b546e4]{background:#fff;border-radius:12px;padding:20px;width:320px}.modal label[data-v-21b546e4]{display:block;margin:10px 0;font-size:14px}.modal input[data-v-21b546e4]{width:100%;margin-top:4px;padding:8px}.modal .row[data-v-21b546e4]{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.modal button[data-v-21b546e4]{padding:8px 14px;cursor:pointer}.error[data-v-21b546e4]{color:#c00;font-size:13px}@media (max-width: 640px){.app[data-v-21b546e4]{padding:10px 10px 48px}header[data-v-21b546e4]{gap:8px}header strong[data-v-21b546e4]{width:100%;font-size:17px}nav[data-v-21b546e4]{flex:1;overflow-x:auto}nav button[data-v-21b546e4]{padding:9px 12px;font-size:14px;white-space:nowrap}.user[data-v-21b546e4]{margin-left:0;width:100%;justify-content:flex-end}.user button.ghost[data-v-21b546e4]{padding:8px 12px}.modal[data-v-21b546e4]{width:calc(100vw - 48px);max-height:86vh;overflow-y:auto}.modal .row button[data-v-21b546e4]{flex:1;padding:10px 8px}}.login-wrap[data-v-e5f98886]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.card[data-v-e5f98886]{width:340px;max-width:100%;padding:28px;border:1px solid #ddd;border-radius:12px;background:#fff}h1[data-v-e5f98886]{margin:0 0 4px;font-size:22px}.sub[data-v-e5f98886]{margin:0 0 16px;color:#666;font-size:14px}label[data-v-e5f98886]{display:block;margin-bottom:12px;font-size:14px}input[data-v-e5f98886]{width:100%;margin-top:4px;padding:8px;box-sizing:border-box}button[data-v-e5f98886]{width:100%;padding:10px;margin-top:4px;cursor:pointer}.error[data-v-e5f98886]{color:#c00;font-size:13px;margin-bottom:8px}@media (max-width: 640px){.card[data-v-e5f98886]{padding:22px 18px}input[data-v-e5f98886],button[data-v-e5f98886]{font-size:16px}}
