body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f8fa;color:#23272f;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.modern-theme{background:#f7f8fa;display:flex;flex-direction:column;min-height:100vh}.modern-navbar{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 8px #00000008;display:flex;height:64px;justify-content:space-between;padding:0 32px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.navbar-logo{color:#3b82f6;font-size:1.5rem;font-weight:700;letter-spacing:1px}.navbar-btn,.navbar-items{display:flex;gap:8px}.navbar-btn{align-items:center;background:none;border:none;border-radius:6px;color:#23272f;cursor:pointer;font-size:1rem;font-weight:500;outline:none;padding:8px 18px;transition:background .2s,color .2s}.navbar-btn.active,.navbar-btn:hover{background:#e0e7ff;color:#2563eb}.navbar-icon{font-size:1.2em}.navbar-label{display:none}@media (min-width:600px){.navbar-label{display:inline}}.modern-main{background:#f7f8fa;flex:1 1;margin:0 auto;max-width:1200px;padding:32px 16px 24px;width:100%}.modern-footer{background:#fff;border-top:1px solid #e5e7eb;color:#7b7f87;font-size:15px;margin-top:0;padding:18px 0 12px;text-align:center}@media (max-width:768px){.modern-main{padding:16px 4px 12px}.modern-navbar{height:54px;padding:0 10px}.navbar-logo{font-size:1.1rem}}.dashboard{padding:20px}.dashboard h2{color:#2c3e50;font-size:28px;margin:0 0 30px}.loading{color:#7f8c8d;font-size:18px;padding:60px;text-align:center}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:40px}.stat-card{align-items:center;border:1px solid gray;border-radius:12px;display:flex;gap:20px;padding:25px;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-3px)}.stat-icon{font-size:40px;line-height:1}.stat-content{flex:1 1}.stat-value{color:#2c3e50;font-size:32px;font-weight:700;line-height:1;margin-bottom:5px}.stat-label{color:#7f8c8d;font-size:14px;font-weight:500}.dashboard-section{margin-bottom:40px}.dashboard-section h3{color:#34495e;font-size:22px;margin:0 0 20px}.no-items{background:#fff;border-radius:12px;color:#7f8c8d;font-size:16px;padding:40px;text-align:center}.table-container{background:#e3f3f7;border:.4px solid #9b9b9b;border-radius:12px;overflow:hidden;overflow-x:auto}table{border-collapse:collapse;width:100%}thead{color:#000}thead th{font-size:14px;font-weight:600;letter-spacing:.5px;padding:15px;text-align:left;text-transform:uppercase}tbody tr{border-bottom:1px solid #e9ecef;transition:background .2s}tbody tr:hover{background:#f8f9fa}tbody td{color:#2c3e50;font-size:14px;padding:15px}.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.status-badge.status-active{background-color:#d4edda;color:#155724}.status-badge.status-inactive{background-color:#f8d7da;color:#721c24}.status-badge.status-maintenance{background-color:#fff3cd;color:#856404}.status-badge.status-error{background-color:#f8d7da;color:#721c24}.delete-btn{background:#e74c3c}.delete-btn,.edit-btn{border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:6px 16px;transition:background .2s,transform .2s}.edit-btn{background:#3498db;margin-right:9px}.delete-btn:hover{background:#c0392b}.edit-btn:hover{background:#2980b9}@media (max-width:768px){.stats-grid{grid-template-columns:1fr}.table-container{font-size:12px}tbody td,thead th{padding:10px 8px}}.registration-form h2{border-bottom:3px solid #3498db}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3498db}.submit-btn{background:linear-gradient(135deg,#3498db,#2980b9)}.submit-btn:hover:not(:disabled){box-shadow:0 4px 12px #3498db4d}.registration-form{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:0 auto;max-width:600px;padding:30px}.registration-form h2{border-bottom:3px solid #9b59b6;color:#2c3e50;font-size:24px;margin:0 0 25px;padding-bottom:10px}.form-group{margin-bottom:20px}.form-group label{color:#34495e;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#9b59b6;outline:none}.form-group textarea{font-family:inherit;resize:vertical}.message{border-radius:8px;font-size:14px;margin-bottom:20px;padding:12px 16px}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.submit-btn{background:linear-gradient(135deg,#9b59b6,#8e44ad);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:transform .2s,box-shadow .2s;width:100%}.submit-btn:hover:not(:disabled){box-shadow:0 4px 12px #9b59b64d;transform:translateY(-2px)}.submit-btn:disabled{background:#95a5a6;cursor:not-allowed}.wisun-extra-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:4px;overflow-x:visible;overflow-x:initial;padding:10px 20px 0}.extra-pill{align-items:center;background:#f4f6fa;border:1px solid #e1e4ea;border-radius:20px;box-shadow:0 1px 2px #00000008;color:#34495e;display:flex;font-size:13px;padding:6px 16px;white-space:nowrap}.extra-label{margin-right:6px}.wisun-extra-grid{grid-gap:8px 16px;display:grid;gap:8px 16px;grid-template-columns:1fr 1fr;padding:10px 20px 0}.extra-item{align-items:center;background:#f4f6fa;border-radius:6px;color:#34495e;display:flex;flex-direction:row;font-size:13px;justify-content:space-between;padding:6px 12px}.extra-label{color:#7f8c8d;font-weight:600;margin-right:8px}.extra-value{color:#2c3e50;font-weight:500;word-break:break-all}.meter-display{padding:20px}.header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:30px}.header h2{color:#2c3e50;font-size:28px;margin:0}.connection-status{align-items:center;border-radius:20px;display:flex;font-size:14px;font-weight:600;gap:8px;padding:8px 16px}.connection-status.connected{background-color:#d4edda;color:#155724}.connection-status.disconnected{background-color:#f8d7da;color:#721c24}.status-dot{animation:pulse 2s infinite;border-radius:50%;height:10px;width:10px}.connection-status.connected .status-dot{background-color:#28a745}.connection-status.disconnected .status-dot{background-color:#dc3545}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.no-data{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:60px 20px;text-align:center}.no-data p{color:#7f8c8d;font-size:18px;margin:10px 0}.no-data .subtitle{color:#95a5a6;font-size:14px}.meter-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;justify-items:center;margin-left:calc(-50vw - -50%);max-width:100vw;width:100vw}@media (min-width:1800px){.meter-grid{grid-template-columns:1fr 1fr 1fr}}.meter-card{border:1px solid gray;border-radius:12px;margin:0 auto;max-width:1100px;min-width:600px;overflow:hidden;transition:transform .2s,box-shadow .2s;width:90%}.meter-card:hover{transform:translateY(-2px)}.meter-header{align-items:center;color:#060606;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:15px 20px}.meter-header h3{font-size:18px;font-weight:600;margin:0}.device-badge{background:#fff3;border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px}.meter-readings{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;padding:20px}.reading-item{background:#f8f9fa;border-left:4px solid #3498db;border-radius:8px;padding:15px;transition:background .3s}.reading-item.status-good{background:#eafaf1;border-left-color:#27ae60}.reading-item.status-warning{background:#fef5e7;border-left-color:#f39c12}.reading-item.status-danger{background:#fadbd8;border-left-color:#e74c3c}.reading-label{align-items:center;color:#7f8c8d;display:flex;font-size:12px;font-weight:600;gap:8px;margin-bottom:8px;text-transform:uppercase}.reading-label .icon{font-size:16px}.reading-value{color:#2c3e50;font-size:24px;font-weight:700}.reading-value .unit{color:#7f8c8d;font-size:14px;font-weight:500;margin-left:4px}.meter-footer{background:#f8f9fa;border-top:1px solid #e9ecef;padding:12px 20px}.timestamp{color:#7f8c8d;font-size:12px}@media (max-width:1200px){.meter-card{border-radius:0;max-width:100vw;min-width:98vw;width:100vw}.meter-grid{grid-template-columns:1fr}}@media (max-width:768px){.meter-card{border-radius:0;max-width:100vw;min-width:100vw}.header{align-items:flex-start;flex-direction:column}.meter-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=main.ae041bb5.css.map*/