*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;background:#f5f5f5;color:#1a1a1a;line-height:1.6;min-height:100vh}.btn{display:inline-flex;align-items:center;gap:4px;padding:7px 16px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:opacity .15s;text-decoration:none}.btn:active{opacity:.7}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:#1677ff;color:#fff}.btn-primary:hover{background:#0958d9}.btn-secondary{background:#f5f5f5;color:#1a1a1a;border:1px solid #e8e8e8}.btn-danger{background:transparent;color:#ff4d4f;border:1px solid #ffd6d6}.btn-danger:hover{background:#fff2f0}.btn-sm{padding:3px 10px;font-size:12px}input,select,textarea{padding:8px 12px;border:1px solid #e8e8e8;border-radius:6px;font-size:14px;font-family:inherit;background:#fff;transition:border-color .15s}input:focus,select:focus,textarea:focus{outline:0;border-color:#1677ff;box-shadow:0 0 0 2px #1677ff0f}.page-bar{margin-top:14px;display:flex;align-items:center;gap:10px;justify-content:center;font-size:14px;flex-wrap:wrap}.page-bar button{padding:6px 14px;border:1px solid #e8e8e8;border-radius:6px;font-size:13px;cursor:pointer;background:#fff;color:#1a1a1a;transition:all .15s}.page-bar button:disabled{opacity:.4;cursor:not-allowed}.page-bar button:active:not(:disabled){opacity:.7}.tag{font-size:12px;padding:2px 10px;border-radius:12px;border:1px solid}.tag-active{background:#f6ffed;color:#52c41a;border-color:#b7eb8f}.tag-disabled{background:#fff2f0;color:#ff4d4f;border-color:#ffd6d6}.card{background:#fff;border-radius:8px;border:1px solid #e8e8e8;padding:20px;margin-bottom:16px}table{width:100%;border-collapse:collapse}th,td{padding:12px 16px;text-align:left;font-size:14px;border-bottom:1px solid #f0f0f0}th{font-weight:500;color:#8c8c8c;font-size:13px;background:#fafafa}.empty{text-align:center;padding:24px;color:#bfbfbf}.alert{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:2000;padding:10px 24px;border-radius:6px;font-size:14px;box-shadow:0 2px 8px #00000014;animation:fadeIn .2s}.alert-error{background:#fff2f0;border:1px solid #ffd6d6;color:#ff4d4f}.alert-success{background:#f6ffed;border:1px solid #b7eb8f;color:#52c41a}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:768px){th,td{font-size:12px;padding:8px}}.login-wrapper[data-v-4864b36a]{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background:#f5f5f5}.login-card[data-v-4864b36a]{background:#fff;border-radius:8px;padding:40px 32px;width:100%;max-width:380px;border:1px solid #e8e8e8;box-shadow:0 1px 4px #0000000a}.login-header[data-v-4864b36a]{text-align:center;margin-bottom:32px}.login-header h1[data-v-4864b36a]{font-size:22px;font-weight:600;color:#1a1a1a}.subtitle[data-v-4864b36a]{font-size:13px;color:#8c8c8c;margin-top:4px}.field[data-v-4864b36a]{margin-bottom:18px}.field label[data-v-4864b36a]{display:block;font-size:13px;color:#8c8c8c;margin-bottom:6px;font-weight:500}.field input[data-v-4864b36a]{width:100%;padding:10px 12px;border:1px solid #e8e8e8;border-radius:6px;font-size:14px;transition:border-color .15s;background:#fff;font-family:inherit}.field input[data-v-4864b36a]:focus{outline:0;border-color:#1677ff;box-shadow:0 0 0 2px #1677ff0f}.btn-login[data-v-4864b36a]{width:100%;padding:10px;border:none;border-radius:6px;font-size:14px;cursor:pointer;background:#1677ff;color:#fff;transition:opacity .15s;font-weight:500;font-family:inherit}.btn-login[data-v-4864b36a]:active{opacity:.75}.btn-login[data-v-4864b36a]:disabled{opacity:.5;cursor:not-allowed}.err-msg[data-v-4864b36a]{color:#ff4d4f;font-size:13px;text-align:center;margin-top:12px}.layout[data-v-eaef43cc]{display:flex;min-height:100vh;background:#f5f5f5}.sidebar[data-v-eaef43cc]{width:220px;background:#fff;border-right:1px solid #e8e8e8;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header[data-v-eaef43cc]{padding:20px 20px 16px;border-bottom:1px solid #e8e8e8}.sidebar-logo[data-v-eaef43cc]{font-size:16px;font-weight:600;color:#1a1a1a;display:block}.sidebar-subtitle[data-v-eaef43cc]{font-size:12px;color:#8c8c8c;margin-top:2px;display:block}.sidebar-menu[data-v-eaef43cc]{flex:1;padding:12px 0;overflow-y:auto}.menu-item[data-v-eaef43cc]{display:flex;align-items:center;gap:10px;padding:11px 20px;font-size:14px;color:#595959;cursor:pointer;text-decoration:none;border-right:3px solid transparent;transition:all .15s}.menu-item[data-v-eaef43cc]:hover{color:#1677ff;background:#1677ff0a}.menu-item.active[data-v-eaef43cc]{color:#1677ff;background:#1677ff0f;border-right-color:#1677ff;font-weight:500}.menu-icon[data-v-eaef43cc]{font-size:16px;width:20px;text-align:center}.sidebar-footer[data-v-eaef43cc]{padding:16px 20px;border-top:1px solid #e8e8e8}.merchant-info[data-v-eaef43cc]{margin-bottom:8px}.merchant-name[data-v-eaef43cc]{font-size:13px;font-weight:500;color:#1a1a1a}.btn-logout[data-v-eaef43cc]{width:100%;padding:6px;border:1px solid #e8e8e8;border-radius:6px;font-size:12px;cursor:pointer;background:#f5f5f5;color:#8c8c8c;font-family:inherit;transition:all .15s}.btn-logout[data-v-eaef43cc]:hover{color:#ff4d4f;border-color:#ffd6d6;background:#fff2f0}.main-area[data-v-eaef43cc]{flex:1;margin-left:220px;min-width:0}.main-content[data-v-eaef43cc]{padding:24px}@media(max-width:768px){.sidebar[data-v-eaef43cc]{width:56px}.sidebar-header[data-v-eaef43cc]{padding:16px 0;text-align:center}.sidebar-logo[data-v-eaef43cc]{font-size:0}.sidebar-logo[data-v-eaef43cc]:after{content:"M";font-size:18px;font-weight:700}.sidebar-subtitle[data-v-eaef43cc]{display:none}.menu-item[data-v-eaef43cc]{justify-content:center;padding:12px 0}.menu-label[data-v-eaef43cc]{display:none}.menu-item.active[data-v-eaef43cc]{border-right-width:0;border-left:3px solid #1677ff}.sidebar-footer[data-v-eaef43cc]{padding:12px 0;text-align:center}.merchant-info[data-v-eaef43cc]{display:none}.btn-logout[data-v-eaef43cc]{font-size:0;padding:8px 0;border:none}.btn-logout[data-v-eaef43cc]:after{content:"⇦";font-size:16px}.main-area[data-v-eaef43cc]{margin-left:56px}.main-content[data-v-eaef43cc]{padding:16px}}.page-wrap[data-v-eddefcbd]{max-width:640px}.page-title[data-v-eddefcbd]{font-size:22px;font-weight:700;color:#1a1a1a;margin-bottom:4px}.page-desc[data-v-eddefcbd]{font-size:14px;color:#8c8c8c;margin-bottom:24px}.msg[data-v-eddefcbd]{padding:10px 16px;border-radius:8px;font-size:14px;margin-bottom:16px;border:1px solid}.msg-success[data-v-eddefcbd]{background:#f6ffed;border-color:#b7eb8f;color:#52c41a}.msg-error[data-v-eddefcbd]{background:#fff2f0;border-color:#ffccc7;color:#ff4d4f}.card[data-v-eddefcbd]{background:#fff;border-radius:12px;border:1px solid #e8e8e8;padding:24px;box-shadow:0 2px 8px #0000000a;margin-bottom:16px}.card-title[data-v-eddefcbd]{font-size:15px;font-weight:600;color:#1a1a1a;margin-bottom:16px}.stay-card[data-v-eddefcbd]{border-left:3px solid #1677ff}.stay-hint[data-v-eddefcbd]{font-size:13px;color:#8c8c8c;margin-bottom:14px;line-height:1.6}.stay-row[data-v-eddefcbd]{display:flex;gap:12px;align-items:flex-end}.query-row[data-v-eddefcbd]{display:flex;gap:10px}.query-row .field-input[data-v-eddefcbd]{flex:1}.gen-row[data-v-eddefcbd]{display:flex;gap:12px;align-items:flex-end}.gen-row .input-group[data-v-eddefcbd]{flex:1}.gen-row .btn-gen[data-v-eddefcbd]{flex-shrink:0}.input-group[data-v-eddefcbd]{display:flex;flex-direction:column;gap:6px}.field-label[data-v-eddefcbd]{font-size:13px;font-weight:600;color:#595959}.field-input[data-v-eddefcbd]{width:100%;padding:10px 12px;border:1.5px solid #d9d9d9;border-radius:8px;font-size:15px;transition:all .15s;background:#fff;font-family:inherit;box-sizing:border-box}.field-input[data-v-eddefcbd]:focus{outline:0;border-color:#1677ff;box-shadow:0 0 0 3px #1677ff1a}select.field-input[data-v-eddefcbd]{cursor:pointer}.result-area[data-v-eddefcbd]{margin-top:20px;padding-top:20px;border-top:1px solid #f0f0f0;text-align:center}.code-display[data-v-eddefcbd]{width:100%;text-align:center;padding:20px;border-radius:12px;background:#fafafa;border:1px solid #e8e8e8;margin-bottom:12px}.code-value[data-v-eddefcbd]{font-size:38px;font-weight:800;color:#1a1a1a;letter-spacing:10px;font-variant-numeric:tabular-nums}.result-meta[data-v-eddefcbd]{font-size:13px;color:#8c8c8c;margin-bottom:14px}.result-actions[data-v-eddefcbd]{display:flex;gap:10px;justify-content:center}.list-header[data-v-eddefcbd]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.btn-refresh[data-v-eddefcbd]{background:none;border:none;font-size:13px;color:#1677ff;cursor:pointer;padding:2px 8px}.btn-refresh[data-v-eddefcbd]:hover{opacity:.7}.btn-refresh[data-v-eddefcbd]:disabled{opacity:.4;cursor:not-allowed}.active-list[data-v-eddefcbd]{display:flex;flex-direction:column;gap:8px}.active-item[data-v-eddefcbd]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fafafa;border-radius:8px}.active-info[data-v-eddefcbd]{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.active-room[data-v-eddefcbd]{font-weight:600;font-size:14px;color:#1a1a1a;min-width:50px}.active-code[data-v-eddefcbd]{font-size:18px;font-weight:700;color:#1677ff;letter-spacing:4px;font-family:monospace}.active-expire[data-v-eddefcbd]{font-size:12px;color:#8c8c8c}.empty-state[data-v-eddefcbd]{text-align:center;padding:32px 0;color:#bfbfbf;font-size:14px}.btn[data-v-eddefcbd]{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s;font-family:inherit;white-space:nowrap;justify-content:center}.btn[data-v-eddefcbd]:active{opacity:.7}.btn[data-v-eddefcbd]:disabled{opacity:.45;cursor:not-allowed}.btn-primary[data-v-eddefcbd]{background:#1677ff;color:#fff}.btn-primary[data-v-eddefcbd]:hover{background:#0958d9}.btn-outline[data-v-eddefcbd]{background:#fff;color:#595959;border:1.5px solid #d9d9d9}.btn-outline[data-v-eddefcbd]:hover{border-color:#1677ff;color:#1677ff}.btn-danger[data-v-eddefcbd]{background:#fff;color:#ff4d4f;border:1.5px solid #ffd6d6}.btn-danger[data-v-eddefcbd]:hover{background:#fff2f0;border-color:#ff4d4f}.btn-sm[data-v-eddefcbd]{padding:5px 12px;font-size:12px}.btn-danger-outline[data-v-eddefcbd]{background:transparent;color:#ff4d4f;border:1px solid #ffd6d6;padding:5px 12px;font-size:12px;border-radius:6px;cursor:pointer;white-space:nowrap}.btn-danger-outline[data-v-eddefcbd]:hover{background:#fff2f0}@media(max-width:600px){.stay-row[data-v-eddefcbd],.gen-row[data-v-eddefcbd],.query-row[data-v-eddefcbd]{flex-direction:column}.code-value[data-v-eddefcbd]{font-size:32px;letter-spacing:8px}.result-actions[data-v-eddefcbd]{flex-direction:column;width:100%}.result-actions .btn[data-v-eddefcbd]{width:100%}.active-info[data-v-eddefcbd]{gap:8px}}.page-wrap[data-v-3d9c1626]{width:100%}.page-header[data-v-3d9c1626]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-header h2[data-v-3d9c1626]{font-size:18px;font-weight:600}.subtitle[data-v-3d9c1626]{font-size:13px;color:#8c8c8c;font-weight:400}.empty[data-v-3d9c1626]{text-align:center;padding:60px 20px;color:#bfbfbf;font-size:15px;background:#fff;border-radius:8px;border:1px solid #e8e8e8}.layout[data-v-3d9c1626]{display:flex;gap:20px;align-items:flex-start}.main[data-v-3d9c1626]{flex:1;min-width:0}.svc-group[data-v-3d9c1626]{margin-bottom:24px}.svc-group[data-v-3d9c1626]:last-child{margin-bottom:0}.group-title[data-v-3d9c1626]{font-size:14px;font-weight:600;color:#8c8c8c;margin-bottom:10px;padding-left:2px}.card-grid[data-v-3d9c1626]{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}@media(max-width:900px){.card-grid[data-v-3d9c1626]{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.card-grid[data-v-3d9c1626]{grid-template-columns:1fr}}.svc-card[data-v-3d9c1626]{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:18px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;gap:10px;position:relative}.svc-card[data-v-3d9c1626]:hover{border-color:#1677ff}.card-close[data-v-3d9c1626]{position:absolute;top:8px;right:8px;width:22px;height:22px;border:none;border-radius:50%;background:#f5f5f5;color:#8c8c8c;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:all .15s}.card-close[data-v-3d9c1626]:hover{background:#ff4d4f;color:#fff}.card-icon[data-v-3d9c1626]{font-size:24px}.card-body[data-v-3d9c1626]{flex:1}.card-title[data-v-3d9c1626]{font-size:14px;font-weight:600;margin-bottom:4px}.card-desc[data-v-3d9c1626]{font-size:12px;color:#8c8c8c;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-footer[data-v-3d9c1626]{display:flex;align-items:center;justify-content:space-between}.tag[data-v-3d9c1626]{font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid}.tag-ok[data-v-3d9c1626]{background:#f6ffed;color:#52c41a;border-color:#b7eb8f}.tag-none[data-v-3d9c1626]{background:#fff7e6;color:#fa8c16;border-color:#ffd591}.sidebar[data-v-3d9c1626]{width:200px;flex-shrink:0;background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:14px;position:sticky;top:20px;max-height:calc(100vh - 100px);display:flex;flex-direction:column}@media(max-width:900px){.layout[data-v-3d9c1626]{flex-direction:column-reverse}.sidebar[data-v-3d9c1626]{width:100%;position:static;max-height:none}}.sidebar-title[data-v-3d9c1626]{font-size:14px;font-weight:600;margin-bottom:8px;flex-shrink:0}.sidebar-search[data-v-3d9c1626]{width:100%;padding:6px 8px;margin-bottom:8px;flex-shrink:0;border:1px solid #e8e8e8;border-radius:6px;font-size:12px;background:#fff}.sidebar-search[data-v-3d9c1626]:focus{outline:0;border-color:#1677ff}.sidebar-list[data-v-3d9c1626]{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.sidebar-empty[data-v-3d9c1626]{font-size:12px;color:#bfbfbf;padding:8px 0;text-align:center}.sidebar-item[data-v-3d9c1626]{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:6px;cursor:pointer;font-size:13px;transition:background .1s}.sidebar-item[data-v-3d9c1626]:hover{background:#f5f5f5}.sidebar-item input[type=checkbox][data-v-3d9c1626]{width:auto;cursor:pointer}.sidebar-icon[data-v-3d9c1626]{font-size:16px;width:22px;text-align:center}.sidebar-label[data-v-3d9c1626]{color:#1a1a1a}.page-wrap[data-v-441debb7]{max-width:640px}.page-header[data-v-441debb7]{display:flex;align-items:center;gap:16px;margin-bottom:20px}.page-header h2[data-v-441debb7]{font-size:18px;font-weight:600}.msg[data-v-441debb7]{padding:10px 16px;border-radius:6px;font-size:13px;margin-bottom:16px;border:1px solid}.msg-success[data-v-441debb7]{background:#f6ffed;border-color:#b7eb8f;color:#52c41a}.empty[data-v-441debb7]{text-align:center;padding:40px 20px;color:#bfbfbf}.edit-card[data-v-441debb7]{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:20px}.form-group[data-v-441debb7]{margin-bottom:16px}.form-group label[data-v-441debb7]{display:block;font-size:13px;color:#8c8c8c;margin-bottom:6px;font-weight:500}.form-group textarea[data-v-441debb7]{width:100%;padding:12px;border:1px solid #e8e8e8;border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;line-height:1.6}.form-group textarea[data-v-441debb7]:focus{outline:0;border-color:#1677ff;box-shadow:0 0 0 2px #1677ff0f}.form-actions[data-v-441debb7]{display:flex;gap:8px;justify-content:flex-end}.btn[data-v-441debb7]{display:inline-flex;align-items:center;gap:4px;padding:7px 16px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:opacity .15s}.btn[data-v-441debb7]:active{opacity:.7}.btn[data-v-441debb7]:disabled{opacity:.45;cursor:not-allowed}.btn-primary[data-v-441debb7]{background:#1677ff;color:#fff}.btn-secondary[data-v-441debb7]{background:#f5f5f5;color:#1a1a1a;border:1px solid #e8e8e8}.page-wrap[data-v-7ac93b28]{max-width:480px}.page-title[data-v-7ac93b28]{font-size:22px;font-weight:700;color:#1a1a1a;margin-bottom:4px}.page-desc[data-v-7ac93b28]{font-size:14px;color:#8c8c8c;margin-bottom:24px}.msg[data-v-7ac93b28]{padding:12px 18px;border-radius:8px;font-size:14px;margin-bottom:20px;border:1px solid;line-height:1.5}.msg-success[data-v-7ac93b28]{background:#f6ffed;border-color:#b7eb8f;color:#52c41a}.msg-error[data-v-7ac93b28]{background:#fff2f0;border-color:#ffd6d6;color:#ff4d4f}.pwd-card[data-v-7ac93b28]{background:#fff;border-radius:12px;border:1px solid #e8e8e8;padding:32px;box-shadow:0 2px 8px #0000000a}.pwd-form[data-v-7ac93b28]{display:flex;flex-direction:column;gap:28px;width:100%}.field-group[data-v-7ac93b28]{display:flex;flex-direction:column;gap:8px;min-width:0}.field-label[data-v-7ac93b28]{font-size:14px;font-weight:600;color:#262626}.field-input[data-v-7ac93b28]{width:100%;padding:11px 14px;border:1.5px solid #d9d9d9;border-radius:8px;font-size:15px;transition:all .2s;background:#fff;font-family:inherit}.field-input[data-v-7ac93b28]:focus{outline:0;border-color:#1677ff;box-shadow:0 0 0 3px #1677ff1a}.form-actions[data-v-7ac93b28]{padding-top:8px}.btn[data-v-7ac93b28]{display:inline-flex;align-items:center;gap:6px;padding:12px 32px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s;font-family:inherit}.btn[data-v-7ac93b28]:active{opacity:.75}.btn[data-v-7ac93b28]:disabled{opacity:.45;cursor:not-allowed}.btn-primary[data-v-7ac93b28]{background:#1677ff;color:#fff}.btn-primary[data-v-7ac93b28]:hover{background:#0958d9}@media(max-width:600px){.pwd-card[data-v-7ac93b28]{padding:20px;border-radius:8px}}
