@font-face{font-family:PF;src:url(/safetyhub/assets/fonts/PingFang%20Medium_0.093b9df7.ttf) format("opentype");font-weight:400;font-style:normal;font-display:swap}#app,*,body,html{margin:0;padding:0}#app,body,html{height:100%;overflow-y:auto;overflow-x:hidden}a{text-decoration:none;color:#000}.auth-modal-overlay[data-v-3aa1d878]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.3);backdrop-filter:blur(3px);z-index:2500;display:flex;align-items:center;justify-content:center;padding:20px}.auth-modal[data-v-3aa1d878]{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.15);width:100%;max-width:450px;max-height:90vh;overflow-y:auto;position:relative;animation:modalFadeIn-3aa1d878 .3s cubic-bezier(.4,0,.2,1)}@keyframes modalFadeIn-3aa1d878{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.modal-enter-active[data-v-3aa1d878],.modal-leave-active[data-v-3aa1d878]{transition:all .3s cubic-bezier(.4,0,.2,1)}.modal-enter[data-v-3aa1d878],.modal-leave-to[data-v-3aa1d878]{opacity:0}.modal-enter .auth-modal[data-v-3aa1d878],.modal-leave-to .auth-modal[data-v-3aa1d878]{transform:scale(.9)}.modal-close[data-v-3aa1d878]{position:absolute;top:16px;right:16px;width:32px;height:32px;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:all .2s ease;z-index:10;background:none;border:none;font-size:20px}.modal-close[data-v-3aa1d878]:hover{background:rgba(0,0,0,.1);color:#374151}.auth-content[data-v-3aa1d878]{padding:24px}.form-title[data-v-3aa1d878]{margin:0 0 24px 0;color:#333;text-align:center;font-size:18px;font-weight:700}.auth-form[data-v-3aa1d878]{margin:0}.form-group[data-v-3aa1d878]{margin-bottom:16px}.form-label[data-v-3aa1d878]{display:block;margin-bottom:8px;color:#555;font-size:14px}.form-input[data-v-3aa1d878]{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:16px;box-sizing:border-box}.form-input[data-v-3aa1d878]:focus{outline:none;border-color:#1976d2}.form-input[data-v-3aa1d878]::-moz-placeholder{color:#999}.form-input[data-v-3aa1d878]::placeholder{color:#999}.field-error[data-v-3aa1d878]{color:#f44336;font-size:12px;margin-top:4px}.error-message[data-v-3aa1d878]{color:#f44336;font-size:14px;margin-bottom:16px;text-align:center}.success-message[data-v-3aa1d878]{background-color:#d4edda;color:#155724;padding:12px;border-radius:4px;margin-bottom:16px;border:1px solid #c3e6cb;text-align:center;font-size:14px}.button-group[data-v-3aa1d878]{display:flex;justify-content:space-between;gap:16px;margin-top:24px}.secondary-button[data-v-3aa1d878]{flex:1;padding:10px 24px;border:1px solid #1f2937;border-radius:4px;background-color:#fff;color:#1f2937;font-size:14px;cursor:pointer;transition:all .2s}.secondary-button[data-v-3aa1d878]:hover{background-color:#f5f5f5}.primary-button[data-v-3aa1d878]{flex:1;padding:10px 24px;border:none;border-radius:4px;background-color:#1f2937;color:#fff;font-size:14px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.primary-button[data-v-3aa1d878]:hover:not(:disabled){background-color:rgb(31,41,55,.8)}.primary-button[data-v-3aa1d878]:disabled{opacity:.8;cursor:not-allowed}.loading-icon[data-v-3aa1d878]{width:16px;height:16px;border:2px solid #fff;border-top:2px solid transparent;border-radius:50%;animation:spin-3aa1d878 1s linear infinite}.loading-overlay[data-v-3aa1d878]{position:absolute;top:0;left:0;right:0;bottom:0;background:hsla(0,0%,100%,.95);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;border-radius:16px}.loading-spinner[data-v-3aa1d878]{text-align:center}.spinner-ring[data-v-3aa1d878]{width:40px;height:40px;border:3px solid #e2e8f0;border-top:3px solid #374151;border-radius:50%;animation:spin-3aa1d878 1s linear infinite;margin:0 auto 16px}.loading-text[data-v-3aa1d878]{color:#64748b;font-size:14px;font-weight:500}@keyframes spin-3aa1d878{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:640px){.auth-modal[data-v-3aa1d878]{width:90%;margin:0 5%}.auth-content[data-v-3aa1d878]{padding:20px}}.modal-overlay[data-v-88db5a7e]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:2500;padding:20px}.user-info-dialog[data-v-88db5a7e]{border-radius:20px;overflow:hidden;max-width:600px;width:90vw}.user-card[data-v-88db5a7e]{background:linear-gradient(135deg,#667eea,#764ba2);position:relative;overflow:hidden;border-radius:20px;animation:cardSlideIn-88db5a7e .4s cubic-bezier(.25,.46,.45,.94)}.user-card.dark[data-v-88db5a7e]{background:linear-gradient(135deg,#1e293b,#0f172a)}@keyframes cardSlideIn-88db5a7e{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.close-btn[data-v-88db5a7e]{background:rgba(0,0,0,.3);border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .3s ease;position:absolute;top:20px;right:20px;z-index:10}.close-btn[data-v-88db5a7e]:hover{background:rgba(0,0,0,.5);transform:scale(1.1)}.close-btn i[data-v-88db5a7e]{font-size:16px}.card-body[data-v-88db5a7e]{background:#fff;border-radius:15px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.1);position:relative;z-index:2}.user-card.dark .card-body[data-v-88db5a7e]{background:#1e293b;color:#f1f5f9}.user-profile[data-v-88db5a7e]{display:flex;align-items:center;position:relative;padding:30px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #e2e8f0}.user-card.dark .user-profile[data-v-88db5a7e]{background:linear-gradient(135deg,#334155,#1e293b);border-bottom-color:#475569}.avatar-section[data-v-88db5a7e]{position:relative;margin-right:25px;flex-shrink:0}.user-avatar[data-v-88db5a7e]{border:4px solid #fff;box-shadow:0 8px 25px rgba(0,0,0,.15);background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;font-size:24px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.user-card.dark .user-avatar[data-v-88db5a7e]{border-color:#334155}.avatar-text[data-v-88db5a7e]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.identity-badge[data-v-88db5a7e]{position:absolute;bottom:-5px;right:-5px;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;color:#fff}.identity-badge.super-admin[data-v-88db5a7e]{background:linear-gradient(135deg,#ff6b6b,#ee5a24)}.identity-badge.admin[data-v-88db5a7e]{background:linear-gradient(135deg,#4ecdc4,#44a08d)}.identity-badge.user[data-v-88db5a7e]{background:linear-gradient(135deg,#74b9ff,#0984e3)}.status-indicator[data-v-88db5a7e]{position:absolute;top:-4px;left:-4px;width:16px;height:16px;background:#ef4444;border-radius:50%;border:3px solid #fff}.status-indicator.active[data-v-88db5a7e]{background:#10b981}.user-card.dark .status-indicator[data-v-88db5a7e]{border-color:#1e293b}.basic-info[data-v-88db5a7e]{flex:1;min-width:0}.user-name[data-v-88db5a7e]{font-size:1.2rem;font-weight:700;color:#2d3436;margin:0 0 8px 0}.user-card.dark .user-name[data-v-88db5a7e]{color:#f1f5f9}.user-institution[data-v-88db5a7e]{font-size:.9rem;color:#636e72;margin:0 0 12px 0;line-height:1.4}.user-card.dark .user-institution[data-v-88db5a7e]{color:#94a3b8}.user-id[data-v-88db5a7e]{display:flex;align-items:center;gap:8px}.user-id .label[data-v-88db5a7e]{font-size:.8rem;color:#636e72;font-weight:500}.user-card.dark .user-id .label[data-v-88db5a7e]{color:#94a3b8}.user-id .value[data-v-88db5a7e]{font-size:.8rem;color:#2d3436;font-family:Courier New,monospace;background:rgba(116,185,255,.1);padding:2px 8px;border-radius:6px}.user-card.dark .user-id .value[data-v-88db5a7e]{color:#e2e8f0;background:rgba(116,185,255,.2)}.detail-info[data-v-88db5a7e]{padding:25px 30px 30px}.info-grid[data-v-88db5a7e]{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info-item[data-v-88db5a7e]{display:flex;flex-direction:column;gap:8px}.info-label[data-v-88db5a7e]{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:#636e72}.user-card.dark .info-label[data-v-88db5a7e]{color:#94a3b8}.info-label i[data-v-88db5a7e]{font-size:1rem;color:#74b9ff}.user-card.dark .info-label i[data-v-88db5a7e]{color:#60a5fa}.info-value[data-v-88db5a7e]{font-size:.9rem;color:#2d3436;padding-left:24px;word-break:break-all}.user-card.dark .info-value[data-v-88db5a7e]{color:#e2e8f0}.status-badge[data-v-88db5a7e]{padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:600;display:inline-block}.status-badge.active[data-v-88db5a7e]{background:linear-gradient(135deg,#00b894,#00a085);color:#fff}.status-badge.inactive[data-v-88db5a7e]{background:linear-gradient(135deg,#fd79a8,#e84393);color:#fff}@media screen and (max-width:600px){.user-profile[data-v-88db5a7e]{flex-direction:column;text-align:center;gap:20px}.avatar-section[data-v-88db5a7e]{margin-right:0}.info-grid[data-v-88db5a7e]{grid-template-columns:1fr;gap:15px}.detail-info[data-v-88db5a7e]{padding:20px}}@font-face{font-family:ProductSans;src:url(/safetyhub/assets/fonts/ProductSans-Regular.982ac0e3.ttf) format("opentype");font-weight:400;font-style:normal;font-display:swap}.navbar[data-v-713cd0aa]{position:fixed;top:0;width:100%;background:#000;backdrop-filter:blur(20px);border-bottom:1px solid rgba(0,0,0,.08);z-index:2300!important;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px rgba(0,0,0,.05);font-family:PingFang SC,PingFang TC,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif}.nav-container[data-v-713cd0aa]{width:90%;margin:0 auto;display:flex;justify-content:space-between;align-items:center;height:60px;padding-right:20px}.nav-container.graph-layout[data-v-713cd0aa]{max-width:none;padding:0 20px;justify-content:flex-start}.nav-brand[data-v-713cd0aa]{font-family:ProductSans,serif!important;font-size:22px;font-weight:700;color:#fff}.logo[data-v-713cd0aa]{font-size:28px;letter-spacing:.05em;transition:color .3s ease}.logo-subtitle[data-v-713cd0aa]{font-size:15px;font-weight:500;opacity:.8;padding-top:8px;transition:color .3s ease}.nav-link.is-active[data-v-713cd0aa]{color:#fff}.nav-link.is-active[data-v-713cd0aa]:after{width:40px}.nav-link.is-active[data-v-713cd0aa],.nav-link.router-link-active[data-v-713cd0aa]{color:#fff}.nav-link.is-active[data-v-713cd0aa]:after,.nav-link.router-link-active[data-v-713cd0aa]:after{width:40px}.nav-menu[data-v-713cd0aa]{display:flex;list-style:none;gap:2.5rem;margin:0;padding:0}.nav-menu.left-aligned[data-v-713cd0aa]{margin-left:8rem;flex:1}.nav-link[data-v-713cd0aa]{text-decoration:none;color:#d3d3d3;font-weight:500;font-size:15px;transition:all .3s ease;position:relative;display:block;padding:.75rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-link.router-link-active[data-v-713cd0aa],.nav-link[data-v-713cd0aa]:hover{color:#fff}.nav-link[data-v-713cd0aa]:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:3px;background:linear-gradient(90deg,#fff,#fff);transition:width .3s ease;border-radius:4px}.nav-link.router-link-active[data-v-713cd0aa]:after,.nav-link[data-v-713cd0aa]:hover:after{width:40px}.nav-actions[data-v-713cd0aa]{display:flex;align-items:center;gap:1.25rem;position:relative}.theme-toggle[data-v-713cd0aa]{background:none;border:none;cursor:pointer;padding:0;transition:transform .2s ease}.theme-toggle[data-v-713cd0aa]:hover{transform:scale(1.05)}.theme-toggle-track[data-v-713cd0aa]{width:52px;height:28px;background:#e5e7eb;border-radius:14px;position:relative;transition:all .3s ease;box-shadow:inset 0 2px 4px rgba(0,0,0,.1)}.theme-toggle-track.active[data-v-713cd0aa]{background:#6b7280}.theme-toggle-thumb[data-v-713cd0aa]{width:24px;height:24px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center}.theme-toggle-track.active .theme-toggle-thumb[data-v-713cd0aa]{transform:translateX(24px);background:#374151}.theme-icon[data-v-713cd0aa]{width:14px;height:14px;color:#6b7280;transition:color .3s ease}.theme-toggle-track.active .theme-icon[data-v-713cd0aa]{color:#f3f4f6}.lang-switcher[data-v-713cd0aa]{display:flex;background:rgba(0,0,0,.04);border-radius:8px;padding:3px;transition:background-color .3s ease}.lang-option[data-v-713cd0aa]{background:none;border:none;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;color:#6b7280;min-width:36px}.lang-option.active[data-v-713cd0aa]{background:#fff;color:#1f2937;box-shadow:0 1px 3px rgba(0,0,0,.1)}.lang-option[data-v-713cd0aa]:hover:not(.active){color:#1f2937}.user-section[data-v-713cd0aa]{position:relative}.user-avatar[data-v-713cd0aa]{width:36px;height:36px;border-radius:50%;cursor:pointer;transition:all .2s ease;border:2px solid rgba(0,0,0,.08);overflow:hidden;position:relative}.user-avatar[data-v-713cd0aa]:hover{border-color:#1f2937;transform:scale(1.05)}.user-avatar img[data-v-713cd0aa]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.avatar-placeholder[data-v-713cd0aa]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f2937,#374151);color:#fff;font-weight:600;font-size:16px}.user-status[data-v-713cd0aa]{position:absolute;bottom:0;right:0;width:10px;height:10px;background:#10b981;border-radius:50%;border:2px solid #fff;z-index:10}.user-menu[data-v-713cd0aa]{position:absolute;top:100%;right:0;margin-top:12px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);min-width:280px;z-index:2300!important;overflow:hidden}.dropdown-enter-active[data-v-713cd0aa],.dropdown-leave-active[data-v-713cd0aa]{transition:all .2s ease}.dropdown-enter[data-v-713cd0aa],.dropdown-leave-to[data-v-713cd0aa]{opacity:0;transform:translateY(-8px) scale(.95)}.user-info[data-v-713cd0aa]{padding:20px;background:rgba(0,0,0,.02);display:flex;align-items:center;gap:12px;z-index:2300!important}.user-avatar-large[data-v-713cd0aa]{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0}.user-avatar-large img[data-v-713cd0aa]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.avatar-placeholder-large[data-v-713cd0aa]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f2937,#374151);color:#fff;font-weight:600;font-size:1.2rem}.user-details[data-v-713cd0aa]{flex:1}.user-name[data-v-713cd0aa]{font-weight:600;color:#111827;margin-bottom:2px;font-size:15px}.user-email[data-v-713cd0aa]{font-size:13px;color:#6b7280}.menu-divider[data-v-713cd0aa]{height:1px;background:rgba(0,0,0,.06);margin:0}.nav-dropdown[data-v-713cd0aa]{position:relative}.nav-dropdown:hover .dropdown-menu[data-v-713cd0aa]{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu[data-v-713cd0aa]{position:absolute;top:100%;left:0;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.1);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s ease;z-index:2300!important;list-style:none;padding:8px 0;margin:8px 0 0 0}.dropdown-link[data-v-713cd0aa]{display:block;padding:12px 20px;color:#374151;text-decoration:none;font-size:14px;transition:background-color .2s ease}.disabled-link[data-v-713cd0aa]{color:#9ca3af;cursor:default}.dropdown-link[data-v-713cd0aa]:hover{background:rgba(0,0,0,.04)}.menu-item[data-v-713cd0aa]{width:100%;padding:14px 20px;border:none;background:none;text-align:left;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:12px;font-size:14px;color:#1f2937;font-weight:500}.menu-item[data-v-713cd0aa]:hover{background:rgba(0,0,0,.04)}.menu-item.logout[data-v-713cd0aa]{color:#dc2626}.menu-item.logout[data-v-713cd0aa]:hover{background:rgba(220,38,38,.04)}.menu-icon[data-v-713cd0aa]{width:18px;height:18px;opacity:.7}.dropdown-link.is-active[data-v-713cd0aa]{background:rgba(0,0,0,.04)}.auth-section[data-v-713cd0aa]{display:flex}.login-btn[data-v-713cd0aa]{border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s ease;border:none;background:transparent;color:#fff}.login-btn[data-v-713cd0aa]:hover{transform:translateY(-1px)}.lang-switcher-circle[data-v-713cd0aa]{width:50px;height:50px;border-radius:50%;background:rgba(0,0,0,.04);border:1px solid hsla(0,0%,100%,.5);cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.lang-switcher-circle[data-v-713cd0aa]:hover{background:rgba(0,0,0,.08);transform:scale(1.05)}.lang-text-cn[data-v-713cd0aa],.lang-text-en[data-v-713cd0aa]{font-size:11px;font-weight:500;color:#d3d3d3;transition:all .3s ease;line-height:1.2;text-align:center}.lang-text-en[data-v-713cd0aa]{margin-bottom:1px}.lang-text-cn[data-v-713cd0aa]{margin-top:1px}.lang-text-cn.active[data-v-713cd0aa],.lang-text-en.active[data-v-713cd0aa]{color:#fff;font-weight:600;font-size:13px}.dropdown-trigger[data-v-713cd0aa]{display:flex;align-items:center;gap:6px}.dropdown-arrow[data-v-713cd0aa]{width:20px;height:20px;transition:transform .3s ease;opacity:.6}.nav-dropdown:hover .dropdown-arrow[data-v-713cd0aa]{transform:rotate(180deg);opacity:.8}.nav-brand[data-v-713cd0aa]{display:flex;align-items:center;gap:.75rem;cursor:pointer}.logo-mark[data-v-713cd0aa]{width:50px;height:50px;border-radius:10px;background-image:url(/safetyhub/assets/img/logo.9a05b7d9.png);background-size:100% 100%;background-repeat:no-repeat;overflow:hidden;flex-shrink:0}.brand-text[data-v-713cd0aa]{display:flex;flex-direction:column;line-height:1.1}.logo[data-v-713cd0aa]{font-size:22px;font-weight:800;letter-spacing:.02em;margin:0;background:linear-gradient(90deg,#0f172a,#334155);-webkit-background-clip:text;background-clip:text;color:#009688}.logo-subtitle[data-v-713cd0aa]{margin-top:2px;font-size:13px;font-weight:600;color:#6b7280;letter-spacing:.02em}@media (max-width:768px){.logo-mark[data-v-713cd0aa]{width:28px;height:28px;border-radius:8px}.logo[data-v-713cd0aa]{font-size:18px}.logo-subtitle[data-v-713cd0aa]{font-size:11px}.lang-switcher-circle[data-v-713cd0aa]{width:45px;height:45px}.lang-text-cn[data-v-713cd0aa],.lang-text-en[data-v-713cd0aa]{font-size:10px}}@media (max-width:1024px){.nav-menu[data-v-713cd0aa]{gap:1.5rem}.nav-menu.left-aligned[data-v-713cd0aa]{margin-left:2rem}}@media (max-width:768px){.navbar[data-v-713cd0aa]{padding:0 1rem}.nav-container[data-v-713cd0aa]{height:64px;padding:0 1rem}.nav-container.graph-layout[data-v-713cd0aa]{padding:0 1rem}.nav-menu[data-v-713cd0aa]{display:none}.logo[data-v-713cd0aa]{font-size:1.5rem}.logo-subtitle[data-v-713cd0aa]{display:none}.nav-actions[data-v-713cd0aa]{gap:1rem}.theme-toggle-track[data-v-713cd0aa]{width:44px;height:24px}.theme-toggle-thumb[data-v-713cd0aa]{width:20px;height:20px}.theme-toggle-track.active .theme-toggle-thumb[data-v-713cd0aa]{transform:translateX(20px)}.user-menu[data-v-713cd0aa]{right:-1rem;min-width:260px}}@media (max-width:480px){.nav-actions[data-v-713cd0aa]{gap:.75rem}.user-menu[data-v-713cd0aa]{right:-1.5rem;min-width:240px}}