*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#faf8f5;--bg-secondary:#f2ede7;--bg-card:#fff;--text-primary:#2d2a26;--text-secondary:#6b6560;--text-muted:#9c9690;--accent:#c4a77d;--accent-hover:#b8956a;--border:#e5dfd7;--error:#c45d4d;--success:#5d9c6d;--shadow-sm:0 1px 3px #2d2a260f;--shadow-md:0 4px 12px #2d2a2614;--shadow-lg:0 12px 32px #2d2a261f;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--font-display:"Noto Serif SC", "Source Han Serif SC", "Source Han Serif CN", serif;--font-body:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;font-size:16px;overflow:hidden}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);touch-action:manipulation;height:100%;line-height:1.6;overflow:hidden}#app{height:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--text-primary);color:var(--bg-primary)}.btn-primary:hover{box-shadow:var(--shadow-md);background:#1a1815;transform:translateY(-1px)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#b35040}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-secondary);color:var(--text-primary)}.input{width:100%;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;font-family:inherit;font-size:15px;transition:all .2s}.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #c4a77d26}.input::placeholder{color:var(--text-muted)}.card{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border)}.app-container[data-v-584bd878]{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-header[data-v-584bd878]{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#faf8f5e6;position:sticky;top:0}.header-inner[data-v-584bd878]{align-items:center;gap:48px;max-width:1200px;height:64px;margin:0 auto;padding:0 32px;display:flex}.logo[data-v-584bd878]{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.02em;font-size:20px;font-weight:600}.nav[data-v-584bd878]{flex:1;gap:8px;display:flex}.nav-link[data-v-584bd878]{color:var(--text-secondary);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-link .icon[data-v-584bd878]{width:18px;height:18px}.nav-link[data-v-584bd878]:hover,.nav-link.active[data-v-584bd878]{color:var(--text-primary);background:var(--bg-secondary)}.logout-btn[data-v-584bd878]{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .2s;display:flex}.logout-btn .icon[data-v-584bd878]{width:16px;height:16px}.logout-btn[data-v-584bd878]:hover{color:var(--error);background:#c45d4d14}.app-main[data-v-584bd878]{overscroll-behavior:contain;flex:1;padding:32px;overflow-y:auto}.app-main[data-v-584bd878]:has(.login-page){overflow:hidden}.app-main[data-v-584bd878]>*{animation:.3s fadeIn-584bd878}@keyframes fadeIn-584bd878{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.header-inner[data-v-584bd878]{gap:16px;height:56px;padding:0 16px}.logo[data-v-584bd878]{font-size:18px}.nav[data-v-584bd878]{gap:4px}.nav-link[data-v-584bd878]{padding:8px 12px;font-size:13px}.nav-link .icon[data-v-584bd878]{width:16px;height:16px}.nav-link span[data-v-584bd878]{display:none}.logout-btn[data-v-584bd878]{padding:8px}.logout-btn span[data-v-584bd878]{display:none}.logout-btn .icon[data-v-584bd878]{width:20px;height:20px}.app-main[data-v-584bd878]{padding:20px 16px}}@media (width<=480px){.header-inner[data-v-584bd878]{padding:0 12px}.logo[data-v-584bd878]{font-size:16px}.nav-link span[data-v-584bd878]{display:none}.app-main[data-v-584bd878]{padding:16px 12px}}.admin-page[data-v-2fb6c654]{max-width:800px;margin:0 auto}.page-header[data-v-2fb6c654]{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.page-title[data-v-2fb6c654]{font-family:var(--font-display);color:var(--text-primary);font-size:32px;font-weight:600}.logout-btn[data-v-2fb6c654]{align-items:center;gap:6px;font-size:13px;display:flex}.admin-content[data-v-2fb6c654]{flex-direction:column;gap:20px;display:flex}.search-bar[data-v-2fb6c654]{margin-bottom:4px}.search-input[data-v-2fb6c654]{width:100%;max-width:560px;height:40px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);outline:none;margin:0 auto;padding:0 16px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s;display:block}.search-input[data-v-2fb6c654]::placeholder{color:var(--text-muted)}.search-input[data-v-2fb6c654]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c4a77d26}.loading-state[data-v-2fb6c654]{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;padding:60px 0;font-size:14px;display:flex}.loading-spinner[data-v-2fb6c654]{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin-2fb6c654}@keyframes spin-2fb6c654{to{transform:rotate(360deg)}}.loading-spinner.small[data-v-2fb6c654]{border-width:2px;width:14px;height:14px;margin-right:6px}.user-list[data-v-2fb6c654]{flex-direction:column;gap:12px;display:flex}.user-card[data-v-2fb6c654]{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.user-info[data-v-2fb6c654]{align-items:center;gap:16px;display:flex}.user-avatar[data-v-2fb6c654]{background:var(--bg-secondary);width:44px;height:44px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-avatar svg[data-v-2fb6c654]{width:24px;height:24px}.user-details[data-v-2fb6c654]{flex-direction:column;gap:4px;display:flex}.user-name[data-v-2fb6c654]{color:var(--text-primary);font-size:15px;font-weight:600}.user-password[data-v-2fb6c654]{color:var(--text-muted);font-size:13px}.user-actions[data-v-2fb6c654]{flex-shrink:0;gap:8px;display:flex}.btn-sm[data-v-2fb6c654]{height:34px;padding:0 14px;font-size:13px}.empty-state[data-v-2fb6c654]{text-align:center;color:var(--text-muted);padding:60px 0;font-size:14px}.error-message[data-v-2fb6c654]{color:var(--error);border-radius:var(--radius-sm);background:#c45d4d14;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.error-icon[data-v-2fb6c654],.success-icon[data-v-2fb6c654]{flex-shrink:0;width:16px;height:16px}.success-message[data-v-2fb6c654]{color:var(--success);border-radius:var(--radius-sm);background:#5d9c6d14;align-items:center;gap:8px;margin-top:12px;padding:12px 16px;font-size:13px;display:flex}.modal-overlay[data-v-2fb6c654]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#2d2a2680;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn-2fb6c654;display:flex;position:fixed;inset:0}@keyframes fadeIn-2fb6c654{0%{opacity:0}to{opacity:1}}.modal-container[data-v-2fb6c654]{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:400px;animation:.3s slideUp-2fb6c654;overflow:hidden}@keyframes slideUp-2fb6c654{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-2fb6c654]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-title[data-v-2fb6c654]{font-family:var(--font-display);font-size:18px;font-weight:600}.modal-close[data-v-2fb6c654]{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;transition:all .2s;display:flex}.modal-close[data-v-2fb6c654]:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-close svg[data-v-2fb6c654]{width:20px;height:20px}.modal-body[data-v-2fb6c654]{padding:24px}.modal-user[data-v-2fb6c654]{color:var(--text-secondary);margin-bottom:20px;font-size:14px}.delete-warning[data-v-2fb6c654]{color:var(--text-secondary);font-size:14px;line-height:1.6}.form-group[data-v-2fb6c654]{flex-direction:column;gap:8px;display:flex}.form-label[data-v-2fb6c654]{color:var(--text-secondary);font-size:13px;font-weight:500}.modal-footer[data-v-2fb6c654]{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}@media (width<=768px){.page-header[data-v-2fb6c654]{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:24px}.page-title[data-v-2fb6c654]{font-size:20px}.logout-btn[data-v-2fb6c654]{padding:6px 10px;font-size:12px}.search-input[data-v-2fb6c654]{max-width:100%}.user-card[data-v-2fb6c654]{flex-direction:column;align-items:flex-start;padding:16px 20px}.user-info[data-v-2fb6c654]{width:100%}.user-actions[data-v-2fb6c654]{flex-wrap:wrap;width:100%}.user-actions .btn[data-v-2fb6c654]{flex:1;min-width:0}.modal-overlay[data-v-2fb6c654]{align-items:flex-end;padding:0}.modal-container[data-v-2fb6c654]{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:80vh}.modal-footer[data-v-2fb6c654]{flex-wrap:wrap;padding:12px 20px}.modal-footer .btn[data-v-2fb6c654]{flex:1;min-width:0}}@media (width<=480px){.page-title[data-v-2fb6c654]{font-size:22px}.user-card[data-v-2fb6c654]{padding:14px 16px}.user-avatar[data-v-2fb6c654]{width:36px;height:36px}.user-name[data-v-2fb6c654]{font-size:14px}.btn-sm[data-v-2fb6c654]{height:32px;padding:0 12px;font-size:12px}}.login-page[data-v-6ad2ed3e]{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100dvh;padding:32px;display:flex}.login-container[data-v-6ad2ed3e]{width:100%;max-width:420px;position:relative;overflow:hidden}.login-card[data-v-6ad2ed3e]{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border);z-index:1;padding:48px 40px;position:relative}.login-header[data-v-6ad2ed3e]{text-align:center;margin-bottom:36px}.login-title[data-v-6ad2ed3e]{font-family:var(--font-display);color:var(--text-primary);margin-bottom:8px;font-size:28px;font-weight:600}.login-subtitle[data-v-6ad2ed3e]{color:var(--text-secondary);font-size:14px}.login-form[data-v-6ad2ed3e]{flex-direction:column;gap:20px;display:flex}.form-group[data-v-6ad2ed3e]{flex-direction:column;gap:8px;display:flex}.form-label[data-v-6ad2ed3e]{color:var(--text-secondary);font-size:13px;font-weight:500}.error-message[data-v-6ad2ed3e]{color:var(--error);border-radius:var(--radius-sm);background:#c45d4d14;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.error-icon[data-v-6ad2ed3e]{flex-shrink:0;width:16px;height:16px}.submit-btn[data-v-6ad2ed3e]{width:100%;height:48px;margin-top:8px;font-size:15px}.submit-btn[data-v-6ad2ed3e]:disabled{opacity:.7;cursor:not-allowed;transform:none}.loading-spinner[data-v-6ad2ed3e]{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin-6ad2ed3e}@keyframes spin-6ad2ed3e{to{transform:rotate(360deg)}}.login-footer[data-v-6ad2ed3e]{text-align:center;margin-top:24px}.back-btn[data-v-6ad2ed3e]{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:8px 16px;font-size:13px;transition:all .2s}.back-btn[data-v-6ad2ed3e]:hover{color:var(--accent);background:var(--bg-secondary)}.login-decoration[data-v-6ad2ed3e]{pointer-events:none;position:absolute;inset:-40px;overflow:hidden}.decoration-circle[data-v-6ad2ed3e]{opacity:.5;border-radius:50%;position:absolute}.circle-1[data-v-6ad2ed3e]{background:linear-gradient(135deg, var(--accent) 0%, transparent 70%);opacity:.15;width:200px;height:200px;top:-60px;right:-60px}.circle-2[data-v-6ad2ed3e]{background:var(--accent);opacity:.08;width:150px;height:150px;bottom:-40px;left:-40px}.circle-3[data-v-6ad2ed3e]{background:var(--accent);opacity:.06;width:80px;height:80px;top:50%;right:-100px}@media (width<=480px){.login-page[data-v-6ad2ed3e]{padding:20px;padding-top:env(safe-area-inset-top,20px);padding-bottom:env(safe-area-inset-bottom,20px)}.login-card[data-v-6ad2ed3e]{border-radius:var(--radius-md);padding:32px 24px}.login-title[data-v-6ad2ed3e]{font-size:24px}.login-subtitle[data-v-6ad2ed3e]{font-size:13px}.login-decoration[data-v-6ad2ed3e]{display:none}.form-group[data-v-6ad2ed3e]{gap:6px}.form-label[data-v-6ad2ed3e]{font-size:12px}.submit-btn[data-v-6ad2ed3e]{height:44px;font-size:14px}.back-btn[data-v-6ad2ed3e]{padding:6px 12px;font-size:13px}}
