:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64);--vt-c-background-2: linear-gradient(100deg, #2575fc, #2ecc71)}:root{--color-background: var(--vt-c-background-2);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media(prefers-color-scheme:dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:0}/*!* 在全局 CSS 文件中 *!*/#app{width:100vw;height:100vh;font-weight:400}a,.green{text-decoration:none;color:#00bd7e;transition:.4s;padding:3px}@media(hover:hover){a:hover{background-color:#00bd7e33}}@media(min-width:1024px){body{display:flex;place-items:center}#app{display:flex;grid-template-columns:1fr 1fr}}header[data-v-e8a7c95a]{line-height:1.5}@media(min-width:1024px){header[data-v-e8a7c95a]{display:flex;place-items:center;padding-right:calc(var(--section-gap) / 2)}header .wrapper[data-v-e8a7c95a]{display:flex;place-items:flex-start;flex-wrap:wrap}}.login-bg{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.login-header{background:linear-gradient(90deg,#2575fc,#6a11cb);color:#fff;padding:30px 20px;text-align:center}.login-form{padding:30px}.input-group{margin-bottom:22px;position:relative}.input-group label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.input-group input{width:100%;padding:14px 14px 14px 45px;border:1px solid #ddd;border-radius:8px;font-size:16px;transition:all .3s ease;outline:none}.remember-forgot{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;font-size:14px}.remember-me{display:flex;align-items:center}.remember-me input{margin-right:8px}.login-btn{width:100%;padding:14px;background:linear-gradient(90deg,#2575fc,#6a11cb);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .3s,box-shadow .3s}.login-container{width:100%;max-width:400px;background:#fff;border-radius:16px;box-shadow:0 15px 35px #00000040;overflow:hidden;animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.login-container{max-width:100%}.login-form{padding:20px}.remember-forgot{flex-direction:column;align-items:flex-start;gap:10px}}[data-v-15c6bf74]{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.container[data-v-15c6bf74]{min-width:100%;margin:0}header[data-v-15c6bf74]{display:flex;justify-content:space-between;align-items:center;padding:20px 0;margin-bottom:30px;border-bottom:1px solid rgba(0,0,0,.1)}.logo[data-v-15c6bf74]{display:flex;align-items:center;gap:15px}.logo i[data-v-15c6bf74]{font-size:2.5rem;color:#4361ee}.logo h1[data-v-15c6bf74]{font-size:2rem;color:#333;font-weight:600}.user-info[data-v-15c6bf74]{display:flex;align-items:center;gap:10px;background:#fff;padding:10px 20px;border-radius:50px;box-shadow:0 4px 12px #00000014}.user-info img[data-v-15c6bf74]{width:40px;height:40px;border-radius:50%;object-fit:cover}.dashboard[data-v-15c6bf74]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:25px;margin-bottom:30px}.dashboard-card[data-v-15c6bf74]{background:#fff;border-radius:12px;box-shadow:0 6px 15px #00000014;padding:25px;transition:transform .3s ease;cursor:pointer}.dashboard-card[data-v-15c6bf74]:hover{transform:translateY(-5px)}.dashboard-card.device[data-v-15c6bf74]{border-top:4px solid #4361ee}.dashboard-card.user[data-v-15c6bf74]{border-top:4px solid #4cc9a7}.dashboard-card i[data-v-15c6bf74]{font-size:2.5rem;margin-bottom:15px}.dashboard-card.device i[data-v-15c6bf74]{color:#4361ee}.dashboard-card.user i[data-v-15c6bf74]{color:#4cc9a7}.dashboard-card h2[data-v-15c6bf74]{font-size:1.5rem;margin-bottom:10px}.dashboard-card p[data-v-15c6bf74]{color:#666;margin-bottom:20px}.card-header h2[data-v-15c6bf74]{font-size:1.5rem;color:#333;font-weight:600}.btn[data-v-15c6bf74]{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease;display:flex;align-items:center;gap:8px}.btn-primary[data-v-15c6bf74]{background:#4361ee;color:#fff}.btn-primary[data-v-15c6bf74]:hover{background:#3a56d4;transform:translateY(-2px)}.btn-success[data-v-15c6bf74]{background:#4cc9a7;color:#fff}.btn-success[data-v-15c6bf74]:hover{background:#3db895;transform:translateY(-2px)}.modal-header h3[data-v-15c6bf74]{font-size:1.4rem;color:#333}.form-group label[data-v-15c6bf74]{display:block;margin-bottom:8px;font-weight:500;color:#555}.user-name[data-v-15c6bf74]{font-weight:600;font-size:1.2rem}.user-role[data-v-15c6bf74]{color:#777;font-size:.9rem}.stats[data-v-15c6bf74]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.stat-card[data-v-15c6bf74]{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #00000014;display:flex;align-items:center;gap:15px}.stat-icon[data-v-15c6bf74]{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff}.stat-icon.device[data-v-15c6bf74]{background:#4361ee}.stat-icon.user[data-v-15c6bf74]{background:#4cc9a7}.stat-icon.active[data-v-15c6bf74]{background:#2ecc71}.stat-icon.inactive[data-v-15c6bf74]{background:#f94144}.stat-info h3[data-v-15c6bf74]{font-size:1.8rem;margin-bottom:5px}.stat-info p[data-v-15c6bf74]{color:#666}@media(max-width:900px){.dashboard[data-v-15c6bf74]{grid-template-columns:1fr}.stats[data-v-15c6bf74]{grid-template-columns:repeat(2,1fr)}}[data-v-f05a5d80]{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.quill-editor-container[data-v-f05a5d80]{height:100px;margin-top:1%;margin-bottom:5%}.virtual-table-container[data-v-f05a5d80]{height:550px;display:flex;flex-direction:column}.scroller[data-v-f05a5d80]{flex:1;overflow-y:auto}.table-row[data-v-f05a5d80]{display:flex;justify-content:space-between;align-items:center;width:100%}.table-cell[data-v-f05a5d80]{display:table-cell;padding:12px;vertical-align:middle}.status[data-v-f05a5d80]{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.status.active[data-v-f05a5d80]{background:#e8f5e8;color:#2e7d32}.status.inactive[data-v-f05a5d80]{background:#ffebee;color:#c62828}.action-btn[data-v-f05a5d80]{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;gap:4px;transition:all .2s}.action-btn.edit[data-v-f05a5d80]{background:#e3f2fd;color:#1976d2}.action-btn.edit[data-v-f05a5d80]:hover{background:#bbdefb}.action-btn.delete[data-v-f05a5d80]{background:#ffebee;color:#d32f2f}.action-btn.delete[data-v-f05a5d80]:hover{background:#ffcdd2}.action-btn[data-v-f05a5d80]:hover{background:#4361ee}.container[data-v-f05a5d80]{min-width:90%;margin:auto;display:flex;justify-content:center;align-items:center}.logo[data-v-f05a5d80]{display:flex;align-items:center;gap:15px}.user-info img[data-v-f05a5d80]{width:40px;height:40px;border-radius:50%;object-fit:cover}table[data-v-f05a5d80]{width:100%;border-collapse:collapse;vertical-align:text-top}th[data-v-f05a5d80],td[data-v-f05a5d80]{padding:15px;text-align:left;border-bottom:1px solid #eee}th[data-v-f05a5d80]{background-color:#f8f9fa;font-weight:600;color:#555}tr[data-v-f05a5d80]:hover{background-color:#f8f9fa}.card[data-v-f05a5d80]{background:#fff;min-width:100%;min-height:100%;border-radius:12px;box-shadow:0 6px 15px #00000014;padding:25px;margin-bottom:25px}.btn[data-v-f05a5d80]{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease;display:flex;align-items:center;gap:8px}.btn-success[data-v-f05a5d80]{background:#4cc9a7;color:#fff}.btn-success[data-v-f05a5d80]:hover{background:#3db895;transform:translateY(-2px)}.btn-primary[data-v-f05a5d80]{background:#4361ee;color:#fff}.btn-primary[data-v-f05a5d80]:hover{background:#3a56d4;transform:translateY(-2px)}.btn-add-device-group[data-v-f05a5d80]{display:flex;justify-content:center;justify-items:center}.card-header[data-v-f05a5d80]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.back-btn[data-v-f05a5d80]{background:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease;display:flex;align-items:center;gap:8px}.back-btn[data-v-f05a5d80]:hover{background:#5a6268;transform:translateY(-2px)}.actions[data-v-f05a5d80]{display:flex;gap:15px;margin-bottom:20px}.btn-warning[data-v-f05a5d80]{background:#f9c74f;color:#fff}.btn-warning[data-v-f05a5d80]:hover{background:#e6b745;transform:translateY(-2px)}.btn-fw[data-v-f05a5d80]{background:#6a11cb;color:#fff}.btn-fw[data-v-f05a5d80]:hover{transform:translateY(-2px)}.confirm-delete[data-v-f05a5d80]{margin:auto 20px auto auto;border:2px solid black;border-radius:4px}.confirm-delete[data-v-f05a5d80]:hover{transform:translateY(-2px)}.btn-danger[data-v-f05a5d80]{background:#f94144;color:#fff}.btn-danger[data-v-f05a5d80]:hover{background:#e03538;transform:translateY(-2px)}.input-group[data-v-f05a5d80]{display:flex;gap:15px;margin-bottom:20px}.input-field[data-v-f05a5d80]{flex:1;padding:12px 15px;border:1px solid #ddd;border-radius:8px;font-size:1rem}.status[data-v-f05a5d80]{padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:500}.status.active[data-v-f05a5d80]{background:#e7f7ef;color:#2ecc71}.status.inactive[data-v-f05a5d80]{background:#fdeaea;color:#e74c3c}.action-buttons[data-v-f05a5d80]{display:flex;gap:8px}.action-btn[data-v-f05a5d80]{padding:6px 10px;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s ease}.action-btn.edit[data-v-f05a5d80]{background:#e9f4ff;color:#3498db}.action-btn.delete[data-v-f05a5d80]{background:#fdeaea;color:#e74c3c}.action-btn[data-v-f05a5d80]:hover{transform:scale(1.05)}.modal[data-v-f05a5d80]{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-f05a5d80]{background:#fff;border-radius:12px;width:60%;padding:25px;box-shadow:0 10px 30px #0003}.modal-header[data-v-f05a5d80]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.close-btn[data-v-f05a5d80]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#777}.form-group[data-v-f05a5d80]{margin-bottom:20px}.add-dev-group[data-v-f05a5d80]{display:flex;padding:0}.tabs[data-v-f05a5d80]{display:flex;border-bottom:1px solid #ddd;margin-bottom:20px}.tab[data-v-f05a5d80]{padding:12px 25px;cursor:pointer;font-weight:500;border-bottom:3px solid transparent;transition:all .3s ease}.tab.active[data-v-f05a5d80]{color:#4361ee;border-bottom:3px solid #4361ee}.user-list[data-v-f05a5d80]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.user-card[data-v-f05a5d80]{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #00000014;transition:transform .3s ease}.user-card[data-v-f05a5d80]:hover{transform:translateY(-5px)}.user-header[data-v-f05a5d80]{display:flex;align-items:center;gap:15px;margin-bottom:15px}.user-avatar[data-v-f05a5d80]{width:60px;height:60px;border-radius:50%;object-fit:cover}.user-details[data-v-f05a5d80]{color:#555;font-size:.95rem;line-height:1.5}.file-input[data-v-f05a5d80]{display:none}.file-label[data-v-f05a5d80]{display:inline-block;padding:10px 20px;background:#e9ecef;border-radius:8px;cursor:pointer;transition:background .3s ease}.file-label[data-v-f05a5d80]:hover{background:#dee2e6}.notification[data-v-f05a5d80]{position:fixed;top:20px;right:20px;padding:15px 25px;border-radius:8px;color:#fff;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:1100;transition:all .3s ease}.notification.success[data-v-f05a5d80]{background:#4cc9a7}.notification.error[data-v-f05a5d80]{background:#f94144}
