:root{--bg-primary: #f5f5f5;--bg-card: #ffffff;--text-primary: #333333;--text-secondary: #666666;--accent: #1976d2;--success: #4caf50;--warning: #ff9800;--danger: #f44336;--border: #e0e0e0}body{margin:0;min-height:100vh;background:var(--bg-primary)}.device-card[data-v-ba7bcaa7]{background:#fff;border-radius:6px;padding:.6rem .75rem;box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:box-shadow .2s}.device-card[data-v-ba7bcaa7]:hover{box-shadow:0 3px 8px #00000026}.card-header[data-v-ba7bcaa7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid #eee}.device-name[data-v-ba7bcaa7]{font-weight:600;color:#333;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions[data-v-ba7bcaa7]{display:flex;align-items:center;gap:.5rem}.status[data-v-ba7bcaa7]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status.online[data-v-ba7bcaa7]{background:#4caf50}.status.offline[data-v-ba7bcaa7]{background:#bdbdbd}.view-btn[data-v-ba7bcaa7],.edit-btn[data-v-ba7bcaa7],.delete-btn[data-v-ba7bcaa7]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:4px;background:transparent;color:#999;cursor:pointer;transition:color .2s,background .2s}.view-btn[data-v-ba7bcaa7]:hover{color:#7b1fa2;background:#f3e5f5}.edit-btn[data-v-ba7bcaa7]:hover{color:#1976d2;background:#e3f2fd}.delete-btn[data-v-ba7bcaa7]:hover{color:#d32f2f;background:#ffebee}.telemetry-grid[data-v-ba7bcaa7]{display:flex;flex-direction:column;gap:.35rem}.telemetry-row[data-v-ba7bcaa7]{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.icon[data-v-ba7bcaa7]{font-size:.85rem;flex-shrink:0}.label[data-v-ba7bcaa7]{color:#888;min-width:55px}.value[data-v-ba7bcaa7]{color:#333}.fuel-row .progress-bar[data-v-ba7bcaa7]{flex:1;height:5px;background:#eee;border-radius:3px;overflow:hidden;min-width:40px}.progress-fill[data-v-ba7bcaa7]{height:100%;background:#4caf50;transition:width .3s}.percent[data-v-ba7bcaa7]{font-size:.75rem;color:#666}.pagination[data-v-aceff9da]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:1rem 0}.page-btn[data-v-aceff9da]{padding:.5rem .75rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:.875rem}.page-btn[data-v-aceff9da]:disabled{opacity:.5;cursor:not-allowed}.page-btn.active[data-v-aceff9da]{background:#1976d2;color:#fff;border-color:#1976d2}.page-info[data-v-aceff9da]{margin-left:1rem;color:#666;font-size:.875rem}.device-grid-container[data-v-0950eb68]{max-width:1400px;margin:0 auto}.grid-header[data-v-0950eb68]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.grid-header h2[data-v-0950eb68]{font-size:1.25rem;color:#333}.device-count-wrapper[data-v-0950eb68]{display:flex;align-items:center;gap:1rem}.device-count[data-v-0950eb68]{color:#666;font-size:.875rem}.add-device-btn[data-v-0950eb68]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:color .2s}.add-device-btn[data-v-0950eb68]:hover{color:#1976d2}.device-grid[data-v-0950eb68]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.loading[data-v-0950eb68],.error[data-v-0950eb68]{text-align:center;padding:2rem;color:#666}.error[data-v-0950eb68]{color:#d32f2f}@media(min-width:1200px){.device-grid[data-v-0950eb68]{grid-template-columns:repeat(4,1fr)}}@media(max-width:768px){.device-grid[data-v-0950eb68]{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.device-grid[data-v-0950eb68]{grid-template-columns:1fr}}.chart-container[data-v-7d322de9]{height:250px;margin-bottom:1rem}.no-data[data-v-7d322de9]{display:flex;align-items:center;justify-content:center;height:100%;color:#888}.modal-overlay[data-v-e4900fac]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:100}.modal[data-v-e4900fac]{background:#fff;border-radius:8px;width:90%;max-width:900px;max-height:80vh;display:flex;flex-direction:column}.modal-header[data-v-e4900fac]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #eee}.modal-header h3[data-v-e4900fac]{margin:0;color:#333}.close-btn[data-v-e4900fac]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#888}.range-picker[data-v-e4900fac]{display:flex;gap:.5rem;padding:1rem 1.5rem;background:#f9f9f9;flex-wrap:wrap}.range-picker select[data-v-e4900fac],.range-picker input[data-v-e4900fac]{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.modal-body[data-v-e4900fac]{padding:1rem 1.5rem;overflow-y:auto;flex:1}.loading[data-v-e4900fac],.error[data-v-e4900fac],.empty[data-v-e4900fac]{text-align:center;padding:2rem;color:#666}.error[data-v-e4900fac]{color:#d32f2f}.table-header[data-v-e4900fac]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.record-count[data-v-e4900fac]{font-size:.85rem;color:#666}.pagination[data-v-e4900fac]{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.pagination button[data-v-e4900fac]{padding:.25rem .5rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer}.pagination button[data-v-e4900fac]:disabled{opacity:.5;cursor:not-allowed}.pagination button[data-v-e4900fac]:hover:not(:disabled){background:#f5f5f5}.history-table[data-v-e4900fac]{width:100%;border-collapse:collapse;font-size:.875rem}.history-table th[data-v-e4900fac],.history-table td[data-v-e4900fac]{padding:.5rem;text-align:left;border-bottom:1px solid #eee}.history-table th[data-v-e4900fac]{background:#f5f5f5;font-weight:600;color:#555}.history-table tr[data-v-e4900fac]:hover{background:#fafafa}.modal-overlay[data-v-57340eed]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:100}.modal[data-v-57340eed]{background:#fff;border-radius:8px;width:90%;max-width:420px}.modal-header[data-v-57340eed]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #eee}.modal-header h3[data-v-57340eed]{margin:0;color:#333;font-size:1.1rem}.close-btn[data-v-57340eed]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#888;line-height:1}.close-btn[data-v-57340eed]:hover{color:#333}.modal-body[data-v-57340eed]{padding:1.5rem}.form-group[data-v-57340eed]{margin-bottom:1.25rem}.form-group label[data-v-57340eed]{display:block;margin-bottom:.5rem;font-weight:500;color:#333;font-size:.9rem}.form-group .required[data-v-57340eed]{color:#d32f2f}.form-group input[data-v-57340eed]{width:100%;padding:.625rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;transition:border-color .2s}.form-group input[data-v-57340eed]:focus{outline:none;border-color:#1976d2}.form-group input[data-v-57340eed]:disabled{background:#f5f5f5}.form-group small[data-v-57340eed]{display:block;margin-top:.375rem;color:#888;font-size:.8rem}.error[data-v-57340eed]{padding:.75rem;background:#ffebee;color:#c62828;border-radius:4px;font-size:.875rem;margin-bottom:1rem}.modal-actions[data-v-57340eed]{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.modal-actions button[data-v-57340eed]{padding:.625rem 1.25rem;border-radius:4px;font-size:.9rem;cursor:pointer;transition:background-color .2s}.btn-cancel[data-v-57340eed]{background:#fff;border:1px solid #ddd;color:#666}.btn-cancel[data-v-57340eed]:hover:not(:disabled){background:#f5f5f5}.btn-primary[data-v-57340eed]{background:#1976d2;border:none;color:#fff}.btn-primary[data-v-57340eed]:hover:not(:disabled){background:#1565c0}.btn-primary[data-v-57340eed]:disabled,.btn-cancel[data-v-57340eed]:disabled{opacity:.6;cursor:not-allowed}.modal-overlay[data-v-d7e46b35]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:100}.modal[data-v-d7e46b35]{background:#fff;border-radius:8px;width:90%;max-width:380px}.modal-header[data-v-d7e46b35]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #eee}.modal-header h3[data-v-d7e46b35]{margin:0;color:#333;font-size:1rem}.close-btn[data-v-d7e46b35]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#888;line-height:1}.close-btn[data-v-d7e46b35]:hover{color:#333}.modal-body[data-v-d7e46b35]{padding:1.25rem}.form-group[data-v-d7e46b35]{margin-bottom:1rem}.form-group label[data-v-d7e46b35]{display:block;margin-bottom:.5rem;font-weight:500;color:#333;font-size:.9rem}.form-group .required[data-v-d7e46b35]{color:#d32f2f}.form-group input[data-v-d7e46b35]{width:100%;padding:.625rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;transition:border-color .2s}.form-group input[data-v-d7e46b35]:focus{outline:none;border-color:#1976d2}.form-group input[data-v-d7e46b35]:disabled{background:#f5f5f5}.form-group textarea[data-v-d7e46b35]{width:100%;padding:.625rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;font-family:inherit;resize:vertical;transition:border-color .2s}.form-group textarea[data-v-d7e46b35]:focus{outline:none;border-color:#1976d2}.form-group textarea[data-v-d7e46b35]:disabled{background:#f5f5f5}.token-input-wrapper[data-v-d7e46b35]{position:relative;display:flex}.token-input-wrapper input[data-v-d7e46b35]{padding-right:2.5rem}.toggle-token[data-v-d7e46b35]{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#888;cursor:pointer;padding:.25rem;display:flex;align-items:center}.toggle-token[data-v-d7e46b35]:hover:not(:disabled){color:#333}.toggle-token[data-v-d7e46b35]:disabled{opacity:.5;cursor:not-allowed}.error[data-v-d7e46b35]{padding:.75rem;background:#ffebee;color:#c62828;border-radius:4px;font-size:.875rem;margin-bottom:1rem}.modal-actions[data-v-d7e46b35]{display:flex;justify-content:flex-end;gap:.75rem}.modal-actions button[data-v-d7e46b35]{padding:.5rem 1rem;border-radius:4px;font-size:.875rem;cursor:pointer;transition:background-color .2s}.btn-cancel[data-v-d7e46b35]{background:#fff;border:1px solid #ddd;color:#666}.btn-cancel[data-v-d7e46b35]:hover:not(:disabled){background:#f5f5f5}.btn-primary[data-v-d7e46b35]{background:#1976d2;border:none;color:#fff}.btn-primary[data-v-d7e46b35]:hover:not(:disabled){background:#1565c0}.btn-primary[data-v-d7e46b35]:disabled,.btn-cancel[data-v-d7e46b35]:disabled{opacity:.6;cursor:not-allowed}.modal-overlay[data-v-3cc76520]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:100}.modal[data-v-3cc76520]{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column}.modal-header[data-v-3cc76520]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #eee;flex-shrink:0}.modal-header h3[data-v-3cc76520]{margin:0;color:#333;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.close-btn[data-v-3cc76520]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#888;line-height:1}.close-btn[data-v-3cc76520]:hover{color:#333}.modal-body[data-v-3cc76520]{padding:1.25rem;overflow-y:auto;flex:1}.loading[data-v-3cc76520],.error[data-v-3cc76520],.empty[data-v-3cc76520]{text-align:center;padding:2rem;color:#666}.error[data-v-3cc76520]{color:#d32f2f}.attributes-list[data-v-3cc76520]{display:flex;flex-direction:column;gap:1.5rem}.attribute-group[data-v-3cc76520]{border:1px solid #eee;border-radius:6px;overflow:hidden}.group-header[data-v-3cc76520]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f9f9f9;border-bottom:1px solid #eee}.badge[data-v-3cc76520]{padding:.125rem .5rem;border-radius:4px;color:#fff;font-size:.75rem;font-weight:500}.count[data-v-3cc76520]{color:#888;font-size:.8rem}.attributes-table[data-v-3cc76520]{width:100%;border-collapse:collapse;font-size:.85rem}.attributes-table th[data-v-3cc76520],.attributes-table td[data-v-3cc76520]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #f0f0f0}.attributes-table th[data-v-3cc76520]{background:#fafafa;font-weight:500;color:#666;font-size:.8rem}.attributes-table tr:last-child td[data-v-3cc76520]{border-bottom:none}.key[data-v-3cc76520]{font-weight:500;color:#333;white-space:nowrap}.value[data-v-3cc76520]{color:#555;word-break:break-all;max-width:200px}.time[data-v-3cc76520]{color:#888;font-size:.75rem;white-space:nowrap}.modal-overlay[data-v-f1aa5552]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:150}.modal[data-v-f1aa5552]{background:#fff;border-radius:8px;width:90%;max-width:380px;overflow:hidden}.modal-header[data-v-f1aa5552]{padding:1rem 1.25rem;border-bottom:1px solid #eee}.modal-header h3[data-v-f1aa5552]{margin:0;color:#333;font-size:1rem}.modal-body[data-v-f1aa5552]{padding:1.25rem}.modal-body p[data-v-f1aa5552]{margin:0;color:#555;font-size:.9rem;line-height:1.5}.modal-actions[data-v-f1aa5552]{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;background:#f9f9f9}.modal-actions button[data-v-f1aa5552]{padding:.5rem 1rem;border-radius:4px;font-size:.875rem;cursor:pointer;transition:background-color .2s}.btn-cancel[data-v-f1aa5552]{background:#fff;border:1px solid #ddd;color:#666}.btn-cancel[data-v-f1aa5552]:hover:not(:disabled){background:#f5f5f5}.btn-confirm[data-v-f1aa5552]{background:#d32f2f;border:none;color:#fff}.btn-confirm[data-v-f1aa5552]:hover:not(:disabled){background:#c62828}.btn-confirm[data-v-f1aa5552]:disabled,.btn-cancel[data-v-f1aa5552]:disabled{opacity:.6;cursor:not-allowed}.toast[data-v-7e2ac579]{position:fixed;top:1.5rem;left:50%;transform:translate(-50%);padding:.875rem 1.5rem;color:#fff;border-radius:6px;font-size:.9rem;font-weight:500;box-shadow:0 4px 12px #0003;z-index:200}.toast.success[data-v-7e2ac579]{background:#43a047}.toast.error[data-v-7e2ac579]{background:#d32f2f}.toast.info[data-v-7e2ac579]{background:#1976d2}.toast-enter-active[data-v-7e2ac579]{animation:toast-in-7e2ac579 .25s ease-out}.toast-leave-active[data-v-7e2ac579]{animation:toast-out-7e2ac579 .2s ease-in}@keyframes toast-in-7e2ac579{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toast-out-7e2ac579{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-10px)}}.monitor-inline[data-v-599c50f9]{display:flex;align-items:center;gap:.75rem;font-size:.75rem;background:#f0f0f0;padding:.3rem .6rem;border-radius:4px}.item[data-v-599c50f9]{display:flex;align-items:center;gap:.2rem}.cpu-info[data-v-599c50f9]{cursor:help;gap:.4rem}.divider[data-v-599c50f9]{width:1px;height:16px;background:#ccc;margin:0 .25rem}.cores[data-v-599c50f9]{background:#e0e0e0;padding:.1rem .3rem;border-radius:3px;font-weight:600;color:#555}.pct[data-v-599c50f9]{font-weight:600;color:#4caf50}.pct.warn[data-v-599c50f9]{color:#ff9800}.pct.danger[data-v-599c50f9]{color:#f44336}.sub[data-v-599c50f9]{color:#888;font-size:.65rem}.label[data-v-599c50f9]{color:#888}.val[data-v-599c50f9]{font-weight:600;color:#4caf50}.val.warn[data-v-599c50f9]{color:#ff9800}.val.danger[data-v-599c50f9]{color:#f44336}.val.rate[data-v-599c50f9]{color:#1976d2}.val.total[data-v-599c50f9]{color:#9c27b0}.unit[data-v-599c50f9]{color:#888;font-size:.65rem}.throughput[data-v-599c50f9]{cursor:help}.error-msg[data-v-599c50f9]{color:#f44336}.loading-msg[data-v-599c50f9]{color:#888}.mobile-icon[data-v-599c50f9]{display:none}@media(max-width:480px){.monitor-inline[data-v-599c50f9]{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .75rem;padding:.5rem .75rem;font-size:.7rem;width:100%}.divider[data-v-599c50f9]{display:none}.item[data-v-599c50f9]{justify-content:flex-start}.cpu-info[data-v-599c50f9]{gap:.25rem}.cores[data-v-599c50f9]{padding:.05rem .2rem;font-size:.65rem}.sub[data-v-599c50f9]{display:none}.mobile-icon[data-v-599c50f9]{display:inline;margin-right:.35rem}.throughput .label[data-v-599c50f9]{display:none}.total-data[data-v-599c50f9]:before{content:"📊";margin-right:.2rem}.data-rate[data-v-599c50f9]:before{content:"⚡";margin-right:.2rem}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{min-height:100vh;background:#f5f5f5}.loading-screen,.error-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;gap:1rem}.spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{color:#d32f2f}.error-screen button{padding:.5rem 1rem;background:#1976d2;color:#fff;border:none;border-radius:4px;cursor:pointer}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#fff;box-shadow:0 1px 3px #0000001a}.header h1{font-size:1.25rem;color:#333}.header-right{display:flex;align-items:center;gap:1rem}.refresh-btn{padding:.5rem 1rem;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer}.main{padding:1rem 1.5rem}@media(max-width:480px){.header{padding:.75rem}.header h1{display:none}.header-right{width:100%}.main{padding:.75rem}}
