.login-container[data-v-09ae9a0e]{min-height:100vh;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);display:flex;align-items:center;justify-content:center;padding:2rem}.login-card[data-v-09ae9a0e]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:3rem;box-shadow:0 20px 40px #0000001a;width:100%;max-width:400px}.login-header[data-v-09ae9a0e]{text-align:center;margin-bottom:2rem}.login-title[data-v-09ae9a0e]{font-size:2rem;font-weight:700;margin-bottom:.5rem}.login-subtitle[data-v-09ae9a0e]{color:var(--text-secondary);font-size:1rem}.login-form[data-v-09ae9a0e]{display:flex;flex-direction:column;gap:1.5rem}.form-group[data-v-09ae9a0e]{display:flex;flex-direction:column;gap:.5rem}.form-group label[data-v-09ae9a0e]{font-weight:500;color:var(--text-primary)}.form-input[data-v-09ae9a0e]{padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;transition:border-color .3s ease}.form-input[data-v-09ae9a0e]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #6d28d91a}.error-message[data-v-09ae9a0e]{background:#ef44441a;color:var(--error-color);padding:.75rem;border-radius:8px;font-size:.9rem;text-align:center}.login-btn[data-v-09ae9a0e]{background:var(--primary-color);color:#fff;border:none;padding:1rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.login-btn[data-v-09ae9a0e]:hover{background:var(--primary-dark);transform:translateY(-1px)}.login-hint[data-v-09ae9a0e]{text-align:center;padding:1rem;background:var(--bg-secondary);border-radius:8px;font-size:.9rem;color:var(--text-secondary)}@media(max-width:768px){.login-container[data-v-09ae9a0e]{padding:1rem}.login-card[data-v-09ae9a0e]{padding:2rem;border-radius:12px;max-width:100%}.login-header[data-v-09ae9a0e]{margin-bottom:1.5rem}.login-title[data-v-09ae9a0e]{font-size:1.5rem}.login-subtitle[data-v-09ae9a0e]{font-size:.9rem}.login-form[data-v-09ae9a0e]{gap:1.25rem}.form-input[data-v-09ae9a0e]{padding:.875rem 1rem;font-size:16px}.login-btn[data-v-09ae9a0e]{padding:.875rem;font-size:1rem}.login-hint[data-v-09ae9a0e]{padding:.75rem;font-size:.8rem}}@media(max-width:480px){.login-card[data-v-09ae9a0e]{padding:1.5rem}.login-title[data-v-09ae9a0e]{font-size:1.3rem}.form-input[data-v-09ae9a0e]{padding:.75rem .875rem}.login-btn[data-v-09ae9a0e]{padding:.75rem}}@media(hover:none)and (pointer:coarse){.login-btn[data-v-09ae9a0e]:active{background:var(--primary-dark);transform:scale(.98)}.form-input[data-v-09ae9a0e]{min-height:44px}}.header[data-v-1fe770c7]{height:60px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 30px;box-shadow:0 2px 10px #0000001a;position:relative;z-index:1000}.header-left[data-v-1fe770c7]{display:flex;align-items:center;padding-left:0;gap:15px}.logo[data-v-1fe770c7]{font-size:24px;font-weight:600;margin:0}.header-right[data-v-1fe770c7]{display:flex;align-items:center;gap:20px}.user-info[data-v-1fe770c7]{position:relative;display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 12px;border-radius:8px;transition:background-color .3s}.user-info[data-v-1fe770c7]:hover{background-color:#ffffff1a}.user-avatar[data-v-1fe770c7]{width:32px;height:32px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-weight:600}.user-name[data-v-1fe770c7]{font-weight:500}.dropdown-arrow[data-v-1fe770c7]{font-size:12px;transition:transform .3s}.user-info:hover .dropdown-arrow[data-v-1fe770c7]{transform:rotate(180deg)}.user-menu[data-v-1fe770c7]{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;min-width:200px;overflow:hidden;z-index:1001}.menu-header[data-v-1fe770c7]{padding:16px;display:flex;align-items:center;gap:12px;background:#f8f9fa}.menu-avatar[data-v-1fe770c7]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}.menu-user-info[data-v-1fe770c7]{flex:1}.menu-username[data-v-1fe770c7]{font-weight:600;color:#333;margin-bottom:2px}.menu-role[data-v-1fe770c7]{font-size:12px;color:#666}.menu-divider[data-v-1fe770c7]{height:1px;background:#e9ecef;margin:0}.menu-item[data-v-1fe770c7]{padding:12px 18px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .2s;color:#333}.menu-item[data-v-1fe770c7]:hover{background-color:#f8f9fa}.menu-text[data-v-1fe770c7]{font-weight:500}.menu-overlay[data-v-1fe770c7]{position:fixed;top:0;left:0;right:0;bottom:0;background:transparent;z-index:999}.mobile-menu-toggle[data-v-1fe770c7]{width:40px;height:40px;background:#ffffff1a;border-radius:8px;display:none;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.mobile-menu-toggle[data-v-1fe770c7]:hover{background:#fff3;transform:scale(1.05)}.menu-icon[data-v-1fe770c7]{color:#fff;font-size:20px;font-weight:700}@media(max-width:768px){.header[data-v-1fe770c7]{padding:0 15px;height:55px}.logo[data-v-1fe770c7]{font-size:18px}.user-info[data-v-1fe770c7]{padding:6px 8px}.user-avatar[data-v-1fe770c7]{width:28px;height:28px;font-size:14px}.user-menu[data-v-1fe770c7]{right:-10px;min-width:180px}.mobile-menu-toggle[data-v-1fe770c7]{display:flex}}@media(max-width:480px){.header[data-v-1fe770c7]{padding:0 12px}.logo[data-v-1fe770c7]{font-size:16px}.user-info[data-v-1fe770c7]{padding:4px 6px}.user-avatar[data-v-1fe770c7]{width:24px;height:24px;font-size:12px}}.sidebar[data-v-6be16c50]{width:250px;background:#fff;border-right:1px solid #e9ecef;padding:20px 0;overflow-y:auto}.nav-menu ul[data-v-6be16c50]{list-style:none;padding:0;margin:0}.nav-menu li[data-v-6be16c50]{margin:0;cursor:pointer;transition:all .3s ease;border-left:3px solid transparent}.nav-menu li[data-v-6be16c50]:hover{background-color:#f8f9fa;border-left-color:#667eea}.nav-menu li.active[data-v-6be16c50]{background-color:#e3f2fd;border-left-color:#667eea}.nav-content[data-v-6be16c50]{padding:15px 25px;display:flex;align-items:center;gap:15px}.nav-icon[data-v-6be16c50]{font-size:18px;width:20px;text-align:center}.nav-text[data-v-6be16c50]{font-weight:500;color:#333;font-size:18px}.nav-menu li.active .nav-text[data-v-6be16c50]{color:#667eea;font-weight:600}.breadcrumb[data-v-37c0e835]{padding:15px 0;margin-bottom:20px;border-bottom:1px solid #e9ecef;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.breadcrumb-item[data-v-37c0e835]{color:#666;cursor:pointer;font-size:14px;transition:color .3s;display:flex;align-items:center}.breadcrumb-item[data-v-37c0e835]:hover{color:#667eea}.breadcrumb-item.active[data-v-37c0e835]{color:#333;font-weight:600;cursor:default}.breadcrumb-separator[data-v-37c0e835]{margin:0 4px;color:#ccc;font-size:12px}@media(max-width:768px){.breadcrumb[data-v-37c0e835]{padding:10px 0;margin-bottom:15px;font-size:12px}.breadcrumb-item[data-v-37c0e835]{font-size:12px}.breadcrumb-separator[data-v-37c0e835]{margin:0 2px;font-size:10px}}@media(max-width:480px){.breadcrumb[data-v-37c0e835]{padding:8px 0;margin-bottom:12px}.breadcrumb-item[data-v-37c0e835]{font-size:11px}.breadcrumb-separator[data-v-37c0e835]{margin:0 1px;font-size:9px}}.main-layout[data-v-05cfe114]{display:flex;flex-direction:column;height:100vh;position:relative}.main-container[data-v-05cfe114]{display:flex;flex:1;overflow:hidden}.main-content[data-v-05cfe114]{flex:1;padding:20px 30px;background:#f8f9fa;overflow-y:auto}.mobile-menu-toggle[data-v-05cfe114]{position:absolute;top:70px;left:10px;z-index:1001;width:44px;height:44px;background:var(--primary-color);border-radius:8px;display:none;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #00000026;transition:all .3s ease}.mobile-menu-toggle[data-v-05cfe114]:hover{background:var(--primary-dark);transform:scale(1.05)}.menu-icon[data-v-05cfe114]{color:#fff;font-size:20px;font-weight:700}.mobile-overlay[data-v-05cfe114]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:998}@media(max-width:768px){.main-container[data-v-05cfe114]{flex-direction:column}.main-content[data-v-05cfe114]{padding:15px 20px}.breadcrumb-wrapper[data-v-05cfe114]{margin-left:0}[data-v-05cfe114] .breadcrumb{padding:10px 0!important;margin-bottom:15px!important;font-size:12px!important}[data-v-05cfe114] .breadcrumb-item{font-size:12px!important}[data-v-05cfe114] .breadcrumb-separator{margin:0 2px!important;font-size:10px!important}[data-v-05cfe114] .sidebar{position:fixed!important;top:60px;left:0;height:calc(100vh - 60px)!important;z-index:999;transform:translate(-100%);transition:transform .3s ease;width:280px!important;background:#fff;box-shadow:2px 0 10px #0000001a}[data-v-05cfe114] .sidebar.mobile-open{transform:translate(0)}[data-v-05cfe114] .nav-content{padding:18px 25px!important;gap:20px!important}[data-v-05cfe114] .nav-text{font-size:16px!important}[data-v-05cfe114] .nav-icon{font-size:20px!important;width:24px!important}}@media(max-width:480px){.main-content[data-v-05cfe114]{padding:12px 15px}.breadcrumb-wrapper[data-v-05cfe114]{margin-left:0}[data-v-05cfe114] .breadcrumb{padding:8px 0!important;margin-bottom:12px!important;font-size:11px!important}[data-v-05cfe114] .breadcrumb-item{font-size:11px!important}[data-v-05cfe114] .breadcrumb-separator{margin:0 1px!important;font-size:9px!important}[data-v-05cfe114] .sidebar{top:55px;height:calc(100vh - 55px)!important}}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#f8f9fa}.app{min-height:100vh;background:var(--bg-primary, #f8f9fa)}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:60px;background:#fff;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-around;z-index:1000;box-shadow:0 -2px 10px #0000001a}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-width:60px;cursor:pointer;transition:all .3s ease;color:var(--text-secondary);position:relative}.nav-item:hover{background:var(--bg-secondary)}.nav-item.active{color:var(--primary-color)}.nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:30px;height:3px;background:var(--primary-color);border-radius:0 0 3px 3px}.nav-icon{font-size:20px;margin-bottom:2px}.nav-label{font-size:10px;font-weight:500}@media(max-width:768px){.app{padding-bottom:60px}}.view-mode-toggle{position:fixed;bottom:20px;right:20px;background:var(--primary-color);color:#fff;border-radius:50px;padding:12px 16px;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:all .3s ease;z-index:1001;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500}.view-mode-toggle:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 20px #0003}.toggle-icon{font-size:18px}.toggle-text{font-size:12px}@media(max-width:768px){.view-mode-toggle{bottom:80px;right:15px;padding:10px 12px}.toggle-icon{font-size:16px}}@media(max-width:480px){.view-mode-toggle{bottom:75px;right:10px;padding:8px 10px}}.home-page[data-v-49c69ccf]{display:flex;flex-direction:column;gap:2rem}.page-header[data-v-49c69ccf]{margin-bottom:2rem}.page-header h2[data-v-49c69ccf]{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.page-header p[data-v-49c69ccf]{color:var(--text-secondary);font-size:1rem}.stats-grid[data-v-49c69ccf]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card[data-v-49c69ccf]{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;align-items:center;gap:1rem;transition:transform .3s ease}.stat-card[data-v-49c69ccf]:hover{transform:translateY(-2px)}.stat-icon[data-v-49c69ccf]{font-size:2rem;width:60px;height:60px;border-radius:50%;background:var(--primary-light);color:#fff;display:flex;align-items:center;justify-content:center}.stat-info[data-v-49c69ccf]{flex:1}.stat-value[data-v-49c69ccf]{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.stat-label[data-v-49c69ccf]{color:var(--text-secondary);font-size:.9rem}.charts-section[data-v-49c69ccf]{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.chart-card[data-v-49c69ccf]{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000000d}.chart-card h3[data-v-49c69ccf]{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.chart-placeholder[data-v-49c69ccf]{height:200px;background:var(--bg-secondary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.9rem}@media(max-width:768px){.home-page[data-v-49c69ccf]{gap:1.5rem}.page-header[data-v-49c69ccf]{margin-bottom:1.5rem}.page-header h2[data-v-49c69ccf]{font-size:1.5rem}.page-header p[data-v-49c69ccf]{font-size:.9rem}.stats-grid[data-v-49c69ccf]{grid-template-columns:repeat(2,1fr);gap:1rem}.charts-section[data-v-49c69ccf]{grid-template-columns:1fr;gap:1rem}.stat-card[data-v-49c69ccf]{padding:1rem;gap:.75rem}.stat-icon[data-v-49c69ccf]{width:50px;height:50px;font-size:1.5rem}.stat-value[data-v-49c69ccf]{font-size:1.5rem}.stat-label[data-v-49c69ccf]{font-size:.8rem}.chart-card[data-v-49c69ccf]{padding:1rem}.chart-card h3[data-v-49c69ccf]{font-size:1.1rem;margin-bottom:.75rem}.chart-placeholder[data-v-49c69ccf]{height:150px;font-size:.8rem}}@media(max-width:480px){.home-page[data-v-49c69ccf]{gap:1rem}.page-header h2[data-v-49c69ccf]{font-size:1.3rem}.stats-grid[data-v-49c69ccf]{grid-template-columns:1fr;gap:.75rem}.stat-card[data-v-49c69ccf]{padding:.75rem;gap:.5rem}.stat-icon[data-v-49c69ccf]{width:40px;height:40px;font-size:1.2rem}.stat-value[data-v-49c69ccf]{font-size:1.3rem}.stat-label[data-v-49c69ccf]{font-size:.75rem}.charts-section[data-v-49c69ccf]{gap:.75rem}.chart-card[data-v-49c69ccf]{padding:.75rem}.chart-card h3[data-v-49c69ccf]{font-size:1rem;margin-bottom:.5rem}.chart-placeholder[data-v-49c69ccf]{height:120px;font-size:.75rem}}.modal-overlay[data-v-3331bdbf]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-3331bdbf]{background:#fff;border-radius:12px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header[data-v-3331bdbf]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3[data-v-3331bdbf]{margin:0;font-size:1.25rem;font-weight:600;color:#374151}.close-btn[data-v-3331bdbf]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.close-btn[data-v-3331bdbf]:hover{background-color:#f3f4f6;color:#374151}.modal-body[data-v-3331bdbf]{padding:1.5rem}.device-form[data-v-3331bdbf]{display:flex;flex-direction:column;gap:1.25rem}.form-group[data-v-3331bdbf]{display:flex;flex-direction:column;gap:.5rem}.form-group label[data-v-3331bdbf]{font-weight:500;color:#374151;font-size:.875rem}.required[data-v-3331bdbf]{color:#ef4444}.form-input[data-v-3331bdbf],.form-select[data-v-3331bdbf]{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.form-input[data-v-3331bdbf]:focus,.form-select[data-v-3331bdbf]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input[data-v-3331bdbf]::placeholder{color:#9ca3af}.form-select[data-v-3331bdbf]{background-color:#fff;cursor:pointer}.form-actions[data-v-3331bdbf]{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.btn[data-v-3331bdbf]{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;min-width:100px}.btn-primary[data-v-3331bdbf]{background-color:#3b82f6;color:#fff}.btn-primary[data-v-3331bdbf]:hover:not(:disabled){background-color:#2563eb}.btn-primary[data-v-3331bdbf]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-3331bdbf]{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db}.btn-secondary[data-v-3331bdbf]:hover{background-color:#e5e7eb}@media(max-width:640px){.modal-content[data-v-3331bdbf]{width:95%;margin:1rem}.form-actions[data-v-3331bdbf]{flex-direction:column}.btn[data-v-3331bdbf]{width:100%}}.confirm-dialog-overlay[data-v-38b49487]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn-38b49487 .2s ease-out}.confirm-dialog[data-v-38b49487]{background:#fff;border-radius:16px;padding:2rem;max-width:400px;width:90%;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp-38b49487 .3s ease-out}.confirm-dialog-header[data-v-38b49487]{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.confirm-dialog-icon[data-v-38b49487]{width:48px;height:48px;background:#ef44441a;color:var(--error-color);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.confirm-dialog-icon svg[data-v-38b49487]{width:24px;height:24px}.confirm-dialog-title[data-v-38b49487]{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.confirm-dialog-body[data-v-38b49487]{margin-bottom:2rem}.confirm-dialog-message[data-v-38b49487]{font-size:1rem;color:var(--text-primary);margin:0 0 .5rem;line-height:1.5}.confirm-dialog-description[data-v-38b49487]{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.confirm-dialog-footer[data-v-38b49487]{display:flex;gap:1rem;justify-content:flex-end}.btn[data-v-38b49487]{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;min-width:80px;justify-content:center}.btn[data-v-38b49487]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.btn[data-v-38b49487]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-38b49487]{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary[data-v-38b49487]:hover:not(:disabled){background:var(--border-color)}.btn-danger[data-v-38b49487]{background:var(--error-color);color:#fff}.btn-danger[data-v-38b49487]:hover:not(:disabled){background:#dc2626}.btn-loading[data-v-38b49487]{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin-38b49487 1s linear infinite}@keyframes fadeIn-38b49487{0%{opacity:0}to{opacity:1}}@keyframes slideUp-38b49487{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin-38b49487{to{transform:rotate(360deg)}}@media(max-width:640px){.confirm-dialog[data-v-38b49487]{padding:1.5rem;margin:1rem}.confirm-dialog-footer[data-v-38b49487]{flex-direction:column}.btn[data-v-38b49487]{width:100%}}.devices-page[data-v-4c13a5e2]{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000d}.page-header[data-v-4c13a5e2]{margin-bottom:2rem}.page-header h2[data-v-4c13a5e2]{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.page-header p[data-v-4c13a5e2]{color:var(--text-secondary);font-size:1rem}.page-actions[data-v-4c13a5e2]{display:flex;gap:1rem;margin-top:1rem}.btn[data-v-4c13a5e2]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-primary[data-v-4c13a5e2]{background:var(--primary-color);color:#fff}.btn-primary[data-v-4c13a5e2]:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-secondary[data-v-4c13a5e2]{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary[data-v-4c13a5e2]:hover{background:var(--border-color)}.btn-success[data-v-4c13a5e2]{background:var(--success-color);color:#fff}.btn-success[data-v-4c13a5e2]:hover{background:var(--success-dark)}.btn-warning[data-v-4c13a5e2]{background:var(--warning-color);color:#fff}.btn-warning[data-v-4c13a5e2]:hover{background:var(--warning-dark)}.btn-icon[data-v-4c13a5e2]{font-size:1rem}.devices-filter[data-v-4c13a5e2]{background:var(--bg-secondary);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.filter-group[data-v-4c13a5e2]{display:flex;align-items:center;gap:.5rem}.filter-group label[data-v-4c13a5e2]{font-weight:500;color:var(--text-secondary);font-size:.9rem;white-space:nowrap}.filter-select[data-v-4c13a5e2]{padding:.5rem;border:1px solid var(--border-color);border-radius:6px;background:#fff;font-size:.9rem;min-width:120px}.filter-input[data-v-4c13a5e2]{padding:.5rem;border:1px solid var(--border-color);border-radius:6px;background:#fff;font-size:.9rem;min-width:200px}.devices-table[data-v-4c13a5e2]{margin-top:1.5rem;overflow-x:auto}.devices-table table[data-v-4c13a5e2]{width:100%;border-collapse:collapse}.devices-table th[data-v-4c13a5e2],.devices-table td[data-v-4c13a5e2]{padding:1rem;text-align:left;border-bottom:1px solid var(--border-color)}.devices-table th[data-v-4c13a5e2]{background:var(--bg-secondary);font-weight:600;color:var(--text-primary)}.devices-table tr[data-v-4c13a5e2]:hover{background:var(--bg-secondary)}@media(max-width:768px){.devices-table table[data-v-4c13a5e2]{display:block}.devices-table thead[data-v-4c13a5e2]{display:none}.devices-table tbody[data-v-4c13a5e2]{display:block}.devices-table tr[data-v-4c13a5e2]{display:block;background:#fff;border-radius:12px;margin-bottom:1rem;box-shadow:0 2px 8px #0000000d;padding:1rem}.devices-table td[data-v-4c13a5e2]{display:block;padding:.5rem 0;border-bottom:none;position:relative;padding-left:120px}.devices-table td[data-v-4c13a5e2]:before{content:attr(data-label);position:absolute;left:0;font-weight:600;color:var(--text-secondary);width:110px}.devices-table td[data-v-4c13a5e2]:last-child{padding-left:0;margin-top:1rem}.devices-table td[data-v-4c13a5e2]:last-child:before{display:none}}@media(max-width:480px){.devices-table td[data-v-4c13a5e2]{padding-left:100px}.devices-table td[data-v-4c13a5e2]:before{width:90px;font-size:.9rem}}.status-badge[data-v-4c13a5e2]{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500}.status-badge.online[data-v-4c13a5e2]{background:#10b9811a;color:var(--success-color)}.status-badge.working[data-v-4c13a5e2]{background:#f59e0b1a;color:var(--warning-color)}.status-badge.offline[data-v-4c13a5e2]{background:#ef44441a;color:var(--error-color)}.status-badge.fault[data-v-4c13a5e2]{background:#8b45131a;color:#8b4513}.real-time-info[data-v-4c13a5e2]{display:flex;flex-direction:column;gap:.25rem}.data-item[data-v-4c13a5e2]{display:flex;align-items:center;gap:.5rem}.data-label[data-v-4c13a5e2]{font-size:.8rem;color:var(--text-secondary);min-width:40px}.data-value[data-v-4c13a5e2]{font-size:.8rem;font-weight:500;color:var(--text-primary)}.no-data[data-v-4c13a5e2]{color:var(--text-secondary);font-size:.8rem}.action-buttons[data-v-4c13a5e2]{display:flex;gap:.5rem}.btn-action[data-v-4c13a5e2]{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;cursor:pointer;transition:all .3s ease}.btn-action[data-v-4c13a5e2]:hover{background:var(--primary-light);color:#fff}.btn-danger[data-v-4c13a5e2]{background:#ef44441a;color:var(--error-color);border-color:var(--error-color)}.btn-danger[data-v-4c13a5e2]:hover{background:var(--error-color);color:#fff}.success-toast[data-v-4c13a5e2],.error-toast[data-v-4c13a5e2]{position:fixed;top:20px;right:20px;background:#fff;border-radius:12px;padding:1rem 1.5rem;box-shadow:0 10px 25px #0000001a;display:flex;align-items:center;gap:1rem;z-index:2000;transform:translate(400px);transition:all .3s ease;min-width:300px}.success-toast[data-v-4c13a5e2]{border-left:4px solid var(--success-color)}.error-toast[data-v-4c13a5e2]{border-left:4px solid var(--error-color)}.success-toast.show[data-v-4c13a5e2],.error-toast.show[data-v-4c13a5e2]{transform:translate(0)}.toast-icon[data-v-4c13a5e2]{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.success-toast .toast-icon[data-v-4c13a5e2]{background:var(--success-color);color:#fff}.error-toast .toast-icon[data-v-4c13a5e2]{background:var(--error-color);color:#fff}.toast-message[data-v-4c13a5e2]{font-size:.9rem;color:var(--text-primary);line-height:1.4}@media(max-width:640px){.success-toast[data-v-4c13a5e2],.error-toast[data-v-4c13a5e2]{right:10px;left:10px;min-width:auto;transform:translateY(-100px)}.success-toast.show[data-v-4c13a5e2],.error-toast.show[data-v-4c13a5e2]{transform:translateY(0)}}@keyframes slideIn-fec5e4b0{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut-fec5e4b0{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.console-page[data-v-fec5e4b0]{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000d}.page-header[data-v-fec5e4b0]{margin-bottom:2rem}.page-header h2[data-v-fec5e4b0]{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.page-header p[data-v-fec5e4b0]{color:var(--text-secondary);font-size:1rem}.console-container[data-v-fec5e4b0]{display:flex;flex-direction:column;gap:1.5rem}.device-selector[data-v-fec5e4b0]{display:flex;align-items:center;gap:1rem}.device-selector label[data-v-fec5e4b0]{font-weight:500;color:var(--text-primary);font-size:.9rem;white-space:nowrap}.select-input[data-v-fec5e4b0]{padding:.5rem;border:1px solid var(--border-color);border-radius:6px;background:#fff;font-size:.9rem;min-width:200px}.control-panel[data-v-fec5e4b0]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.control-section[data-v-fec5e4b0]{background:var(--bg-secondary);padding:1.5rem;border-radius:12px}.control-section h3[data-v-fec5e4b0]{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.control-buttons[data-v-fec5e4b0]{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.control-btn[data-v-fec5e4b0]{padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;background:#fff;color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease}.control-btn[data-v-fec5e4b0]:hover{background:var(--primary-light);color:#fff;transform:translateY(-1px)}.btn-start[data-v-fec5e4b0]{background:var(--success-color);color:#fff;border-color:var(--success-color)}.btn-start[data-v-fec5e4b0]:hover{background:var(--success-dark)}.btn-stop[data-v-fec5e4b0]{background:var(--error-color);color:#fff;border-color:var(--error-color)}.btn-stop[data-v-fec5e4b0]:hover{background:var(--error-dark)}.real-time-data[data-v-fec5e4b0]{grid-column:1 / -1;background:var(--bg-secondary);padding:1.5rem;border-radius:12px}.data-header[data-v-fec5e4b0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.data-header h3[data-v-fec5e4b0]{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:0}.data-status[data-v-fec5e4b0]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500}.btn-connect[data-v-fec5e4b0],.btn-disconnect[data-v-fec5e4b0]{padding:4px 8px;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s;margin-left:8px}.btn-connect[data-v-fec5e4b0]{background:#28a745;color:#fff}.btn-connect[data-v-fec5e4b0]:hover:not(:disabled){background:#218838}.btn-connect[data-v-fec5e4b0]:disabled{background:#ccc;cursor:not-allowed}.btn-disconnect[data-v-fec5e4b0]{background:#dc3545;color:#fff}.btn-disconnect[data-v-fec5e4b0]:hover{background:#c82333}.data-status.connected[data-v-fec5e4b0]{background:#10b9811a;color:var(--success-color)}.data-status[data-v-fec5e4b0]:not(.connected){background:#6b72801a;color:var(--text-secondary)}.status-indicator[data-v-fec5e4b0]{width:6px;height:6px;border-radius:50%}.data-status.connected .status-indicator[data-v-fec5e4b0]{background:var(--success-color)}.data-status:not(.connected) .status-indicator[data-v-fec5e4b0]{background:var(--text-secondary)}.data-grid[data-v-fec5e4b0]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.data-item[data-v-fec5e4b0]{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border:1px solid var(--border-color);border-radius:8px}.data-item label[data-v-fec5e4b0]{font-weight:500;color:var(--text-primary);font-size:.9rem}.data-item span[data-v-fec5e4b0]{color:var(--text-secondary);font-size:.9rem}.status-badge[data-v-fec5e4b0]{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500}.status-badge.online[data-v-fec5e4b0]{background:#10b9811a;color:var(--success-color)}.status-badge.working[data-v-fec5e4b0]{background:#f59e0b1a;color:var(--warning-color)}.status-badge.offline[data-v-fec5e4b0]{background:#ef44441a;color:var(--error-color)}.status-badge.fault[data-v-fec5e4b0]{background:#8b45131a;color:#8b4513}@media(max-width:768px){.control-panel[data-v-fec5e4b0]{grid-template-columns:1fr}.device-selector[data-v-fec5e4b0]{flex-direction:column;align-items:stretch}.select-input[data-v-fec5e4b0]{min-width:auto}.data-grid[data-v-fec5e4b0]{grid-template-columns:1fr}}.logs-page[data-v-57b81201]{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000d}.page-header[data-v-57b81201]{margin-bottom:2rem}.page-header h2[data-v-57b81201]{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.page-header p[data-v-57b81201]{color:var(--text-secondary);font-size:1rem}.logs-container[data-v-57b81201]{display:flex;flex-direction:column;gap:1.5rem}.logs-filter[data-v-57b81201]{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.filter-group[data-v-57b81201]{display:flex;align-items:center;gap:.5rem}.filter-group label[data-v-57b81201]{font-weight:500;color:var(--text-primary);font-size:.9rem}.select-input[data-v-57b81201]{padding:.5rem;border:1px solid var(--border-color);border-radius:6px;background:#fff;font-size:.9rem;min-width:120px}.btn[data-v-57b81201]{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}.btn-primary[data-v-57b81201]{background:var(--primary-color);color:#fff}.btn-primary[data-v-57b81201]:hover{background:var(--primary-dark)}.logs-table[data-v-57b81201]{overflow-x:auto}.logs-table table[data-v-57b81201]{width:100%;border-collapse:collapse}.logs-table th[data-v-57b81201],.logs-table td[data-v-57b81201]{padding:1rem;text-align:left;border-bottom:1px solid var(--border-color)}.logs-table th[data-v-57b81201]{background:var(--bg-secondary);font-weight:600;color:var(--text-primary)}.logs-table tr[data-v-57b81201]:hover{background:var(--bg-secondary)}.log-level[data-v-57b81201]{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500}.log-level.info[data-v-57b81201]{background:#3b82f61a;color:var(--info-color)}.log-level.warning[data-v-57b81201]{background:#f59e0b1a;color:var(--warning-color)}.log-level.error[data-v-57b81201]{background:#ef44441a;color:var(--error-color)}@media(max-width:768px){.logs-filter[data-v-57b81201]{flex-direction:column;align-items:stretch}.filter-group[data-v-57b81201]{justify-content:space-between}.logs-table[data-v-57b81201]{font-size:.8rem}.logs-table th[data-v-57b81201],.logs-table td[data-v-57b81201]{padding:.5rem}}.config-page[data-v-72a2a43c]{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000d}.page-header[data-v-72a2a43c]{margin-bottom:2rem}.page-header h2[data-v-72a2a43c]{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.page-header p[data-v-72a2a43c]{color:var(--text-secondary);font-size:1rem}.config-container[data-v-72a2a43c]{display:flex;flex-direction:column;gap:2rem}.config-section[data-v-72a2a43c]{background:var(--bg-secondary);padding:1.5rem;border-radius:12px}.config-section h3[data-v-72a2a43c]{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.config-form[data-v-72a2a43c]{display:flex;flex-direction:column;gap:1rem}.form-row[data-v-72a2a43c]{display:flex;align-items:center;gap:1rem}.form-row label[data-v-72a2a43c]{width:120px;font-weight:500;color:var(--text-primary)}.form-row input[data-v-72a2a43c],.form-row select[data-v-72a2a43c]{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;max-width:300px}.form-row input[data-v-72a2a43c]:focus,.form-row select[data-v-72a2a43c]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #6d28d91a}.config-actions[data-v-72a2a43c]{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color)}.btn[data-v-72a2a43c]{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-primary[data-v-72a2a43c]{background:var(--primary-color);color:#fff}.btn-primary[data-v-72a2a43c]:hover{background:var(--primary-dark)}.btn-secondary[data-v-72a2a43c]{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary[data-v-72a2a43c]:hover{background:var(--border-color)}@media(max-width:768px){.form-row[data-v-72a2a43c]{flex-direction:column;align-items:stretch}.form-row label[data-v-72a2a43c]{width:auto}.form-row input[data-v-72a2a43c],.form-row select[data-v-72a2a43c]{max-width:none}.config-actions[data-v-72a2a43c]{flex-direction:column}}.not-found[data-v-b082ef3b]{text-align:center;margin-top:50px;padding:40px}.not-found h1[data-v-b082ef3b]{font-size:48px;color:#ea6668;margin-bottom:20px}.not-found p[data-v-b082ef3b]{font-size:18px;color:#ffffffb3;margin-bottom:30px}.not-found a[data-v-b082ef3b]{display:inline-block;padding:12px 24px;background:#889ab5;color:#fff;text-decoration:none;border-radius:8px;transition:background .3s}.not-found a[data-v-b082ef3b]:hover{background:#6a7ca5}:root{--primary-color: #8b5cf6;--primary-light: #a78bfa;--primary-dark: #7c3aed;--secondary-color: #c4b5fd;--accent-color: #ddd6fe;--bg-primary: #fafafa;--bg-secondary: #f5f3ff;--text-primary: #1f2937;--text-secondary: #6b7280;--border-color: #e5e7eb;--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--info-color: #3b82f6;--mobile-breakpoint: 768px;--tablet-breakpoint: 1024px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:var(--bg-primary);min-height:100vh;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(max-width:768px){body{font-size:14px}}body.force-mobile{font-size:14px!important}body.force-mobile *{-webkit-text-size-adjust:100%!important}body.force-desktop{font-size:16px!important}body.force-mobile .mobile-only{display:block!important}body.force-mobile .desktop-only,body.force-desktop .mobile-only{display:none!important}body.force-desktop .desktop-only{display:block!important}body.force-mobile .main-container{flex-direction:column!important}body.force-mobile .main-content{padding:15px 20px!important;margin-top:50px!important}body.force-mobile .mobile-menu-toggle,body.force-mobile .mobile-bottom-nav{display:flex!important}body.force-mobile .app{padding-bottom:60px!important}body.force-mobile .breadcrumb-wrapper{margin-left:0!important}body.force-mobile .breadcrumb{padding:10px 0!important;margin-bottom:15px!important;font-size:12px!important}body.force-mobile .breadcrumb-item{font-size:12px!important}body.force-mobile .breadcrumb-separator{margin:0 2px!important;font-size:10px!important}@media(max-width:480px){body.force-mobile .breadcrumb-wrapper{margin-left:45px!important}body.force-mobile .breadcrumb{padding:8px 0!important;margin-bottom:12px!important;font-size:11px!important}body.force-mobile .breadcrumb-item{font-size:11px!important}body.force-mobile .breadcrumb-separator{margin:0 1px!important;font-size:9px!important}}body.force-desktop .main-container{flex-direction:row!important}body.force-desktop .main-content{padding:20px 30px!important;margin-top:0!important}body.force-desktop .mobile-menu-toggle,body.force-desktop .mobile-bottom-nav{display:none!important}body.force-desktop .app{padding-bottom:0!important}body.force-mobile .sidebar{position:fixed!important;top:60px!important;left:0!important;height:calc(100vh - 60px)!important;z-index:999!important;transform:translate(-100%)!important;transition:transform .3s ease!important;width:280px!important;background:#fff!important;box-shadow:2px 0 10px #0000001a!important}body.force-mobile .sidebar.mobile-open{transform:translate(0)!important}body.force-mobile .mobile-overlay{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;background:#00000080!important;z-index:998!important}@media(hover:none)and (pointer:coarse){*{-webkit-tap-highlight-color:transparent}button,.btn,.nav-item,.menu-item{min-height:44px;min-width:44px}}.mobile-only{display:none!important}.desktop-only{display:block!important}@media(max-width:768px){.mobile-only{display:block!important}.desktop-only{display:none!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}@media(max-width:768px){::-webkit-scrollbar{width:4px;height:4px}}
