:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#0a0a0a;color:#fff;line-height:1.6;overflow-x:hidden}.app{min-height:100vh;display:flex;flex-direction:column}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:#0a0a0a}.loading-spinner{width:50px;height:50px;border:4px solid #333;border-top:4px solid #20e25b;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.loading-container h2{color:#20e25b;margin-bottom:.5rem}.loading-container p{color:#888}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border-bottom:3px solid #20e25b;padding:1rem 0;box-shadow:0 4px 20px #20e25b4d}.header-content{max-width:1400px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:2rem}.logo{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.partnership-logos{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.logo-zynex,.logo-maringa{height:40px;width:auto;filter:brightness(1.1)}.partnership-symbol{color:#20e25b;font-size:1.5rem;font-weight:700;margin:0 .5rem}.logo h1{color:#fff;font-size:1.8rem;font-weight:700;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.3)}.logo p{color:#20e25b;font-size:.9rem;margin:0;font-weight:500}.header-stats{display:flex;gap:1rem;flex-wrap:wrap}.stat-card{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:1rem;text-align:center;min-width:80px;transition:all .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #20e25b33}.stat-card.online{border-color:#20e25b;box-shadow:0 0 20px #20e25b4d}.stat-card.offline{border-color:#f44;box-shadow:0 0 20px #ff44444d}.stat-card.inactive{border-color:orange;box-shadow:0 0 20px #ffa5004d}.stat-card.total{border-color:#4a9eff;box-shadow:0 0 20px #4a9eff4d}.stat-card.captures{border-color:#9d4edd;box-shadow:0 0 20px #9d4edd4d}.stat-number{display:block;font-size:1.8rem;font-weight:700;color:#fff;margin-bottom:.25rem}.stat-label{font-size:.8rem;color:#ccc;text-transform:uppercase;letter-spacing:.5px}.nav-tabs{background:#1a1a1a;border-bottom:1px solid #333;padding:0 2rem;display:flex;gap:0;overflow-x:auto;max-width:1400px;margin:0 auto}.tab{background:transparent;border:none;color:#888;padding:1rem 1.5rem;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s ease;border-bottom:3px solid transparent;white-space:nowrap;position:relative}.tab:hover{color:#20e25b;background:#20e25b1a}.tab.active{color:#20e25b;border-bottom-color:#20e25b;background:#20e25b1a}.alert-badge{background:#f44;color:#fff;border-radius:50%;padding:.2rem .5rem;font-size:.7rem;margin-left:.5rem;min-width:1.2rem;height:1.2rem;display:inline-flex;align-items:center;justify-content:center}.main-content{flex:1;max-width:1400px;margin:0 auto;padding:2rem;width:100%}.overview-tab{display:flex;flex-direction:column;gap:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.stat-box{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border:1px solid #333;border-radius:12px;padding:1.5rem;transition:all .3s ease}.stat-box:hover{border-color:#20e25b;box-shadow:0 8px 25px #20e25b33;transform:translateY(-2px)}.stat-box h3{color:#20e25b;margin-bottom:1rem;font-size:1.1rem}.chart-placeholder{display:flex;align-items:end;gap:.5rem;height:100px;margin:1rem 0}.bar{background:linear-gradient(to top,#20e25b,#4ade80);border-radius:4px 4px 0 0;width:20px;transition:all .3s ease}.bar:hover{background:linear-gradient(to top,#4ade80,#20e25b);transform:scaleY(1.1)}.status-summary{display:flex;flex-direction:column;gap:1rem}.status-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:8px;background:#ffffff0d}.status-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.upload-stats{display:flex;align-items:center;gap:1rem}.upload-number{font-size:2.5rem;font-weight:700;color:#20e25b}.upload-details p{margin:.25rem 0;color:#ccc}.machines-tab{display:flex;flex-direction:column;gap:2rem}.machines-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.machines-header h2{color:#20e25b;font-size:1.5rem}.machines-filters{display:flex;gap:.5rem;flex-wrap:wrap}.filter-btn{background:#2d2d2d;border:1px solid #444;color:#ccc;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .3s ease}.filter-btn:hover{border-color:#20e25b;color:#20e25b}.filter-btn.active{background:#20e25b;border-color:#20e25b;color:#000}.machines-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.machine-card{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border:1px solid #333;border-radius:12px;padding:1.5rem;transition:all .3s ease}.machine-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.machine-card.online{border-color:#20e25b;box-shadow:0 0 20px #20e25b33}.machine-card.offline{border-color:#f44;box-shadow:0 0 20px #f443}.machine-card.inactive{border-color:orange;box-shadow:0 0 20px #ffa50033}.machine-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.machine-name{color:#fff;font-size:1.1rem;margin:0}.machine-status{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase}.machine-status.online{background:#20e25b33;color:#20e25b;border:1px solid #20e25b}.machine-status.offline{background:#f443;color:#f44;border:1px solid #ff4444}.machine-status.inactive{background:#ffa50033;color:orange;border:1px solid #ffa500}.machine-info{margin-bottom:1rem}.machine-info p{margin:.5rem 0;color:#ccc;font-size:.9rem}.machine-info strong{color:#fff}.machine-actions{display:flex;gap:.5rem;flex-wrap:wrap}.action-btn{background:#2d2d2d;border:1px solid #444;color:#ccc;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.8rem;transition:all .3s ease}.action-btn:hover{border-color:#20e25b;color:#20e25b}.action-btn.primary{background:#20e25b;border-color:#20e25b;color:#000}.action-btn.primary:hover{background:#4ade80}.alerts-tab{display:flex;flex-direction:column;gap:2rem}.alerts-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.alerts-header h2{color:#20e25b;font-size:1.5rem}.alerts-summary{display:flex;gap:1rem}.alert-count{text-align:center;padding:.75rem;border-radius:8px;min-width:60px}.alert-count.high{background:#f443;border:1px solid #ff4444}.alert-count.medium{background:#ffa50033;border:1px solid #ffa500}.alert-count.low{background:#4a9eff33;border:1px solid #4a9eff}.alert-count .count{display:block;font-size:1.5rem;font-weight:700;color:#fff}.alert-count .label{font-size:.8rem;color:#ccc}.alerts-container{display:flex;flex-direction:column;gap:1rem}.alert-card{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border:1px solid #333;border-radius:12px;padding:1.5rem;transition:all .3s ease}.alert-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.alert-card.high{border-color:#f44;box-shadow:0 0 20px #f443}.alert-card.medium{border-color:orange;box-shadow:0 0 20px #ffa50033}.alert-card.low{border-color:#4a9eff;box-shadow:0 0 20px #4a9eff33}.alert-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.alert-icon{font-size:1.5rem}.alert-info{flex:1}.alert-info h3{color:#fff;margin:0 0 .25rem;font-size:1.1rem}.alert-machine{color:#20e25b;font-size:.9rem}.alert-time{color:#888;font-size:.8rem}.alert-message{color:#ccc;margin-bottom:1rem;line-height:1.5}.alert-actions{display:flex;gap:.5rem;flex-wrap:wrap}.versions-section{margin-top:2rem;padding-top:2rem;border-top:1px solid #333}.versions-section h3{color:#20e25b;margin-bottom:1rem}.version-card{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border:1px solid #333;border-radius:12px;padding:1.5rem;margin-bottom:1rem}.version-info h4{color:#fff;margin-bottom:.5rem}.version-changelog{margin:1rem 0;padding:1rem;background:#20e25b1a;border-radius:8px;border-left:4px solid #20e25b}.version-changelog strong{color:#20e25b}.version-stats{display:flex;gap:2rem;margin-top:1rem}.version-stats .stat{text-align:center}.version-stats .number{display:block;font-size:1.5rem;font-weight:700;color:#20e25b}.version-stats .label{font-size:.8rem;color:#ccc}.logs-tab{display:flex;flex-direction:column;gap:2rem}.logs-header h2{color:#20e25b;font-size:1.5rem}.logs-container{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:1rem;max-height:600px;overflow-y:auto}.log-entry{display:grid;grid-template-columns:150px 120px 80px 1fr;gap:1rem;padding:.75rem;border-bottom:1px solid #333;font-family:Courier New,monospace;font-size:.85rem;align-items:center}.log-entry:last-child{border-bottom:none}.log-entry:hover{background:#20e25b0d}.log-timestamp{color:#888}.log-machine{color:#20e25b;font-weight:600}.log-type{padding:.25rem .5rem;border-radius:4px;text-align:center;font-size:.7rem;text-transform:uppercase;font-weight:600}.log-type.info{background:#4a9eff33;color:#4a9eff}.log-type.warning{background:#ffa50033;color:orange}.log-type.error{background:#f443;color:#f44}.log-message{color:#ccc}.config-tab{display:flex;flex-direction:column;gap:2rem}.config-tab h2{color:#20e25b;font-size:1.5rem}.config-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.config-section{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border:1px solid #333;border-radius:12px;padding:1.5rem}.config-section h3{color:#20e25b;margin-bottom:1rem}.config-item{margin-bottom:1rem}.config-item label{display:block;color:#ccc;margin-bottom:.5rem;font-size:.9rem}.config-item input,.config-item select{width:100%;background:#2d2d2d;border:1px solid #444;color:#fff;padding:.75rem;border-radius:6px;font-size:.9rem}.config-item input:focus,.config-item select:focus{outline:none;border-color:#20e25b;box-shadow:0 0 0 2px #20e25b33}.config-actions{display:flex;gap:1rem;margin-top:2rem}.save-btn{background:#20e25b;border:none;color:#000;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s ease}.save-btn:hover{background:#4ade80;transform:translateY(-1px)}.reset-btn{background:transparent;border:1px solid #ff4444;color:#f44;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s ease}.reset-btn:hover{background:#ff44441a}.no-alerts{text-align:center;padding:3rem;color:#888}.no-alerts-icon{font-size:3rem;margin-bottom:1rem}.no-alerts h3{color:#ccc;margin-bottom:.5rem}.footer{background:#1a1a1a;border-top:1px solid #333;padding:1rem 2rem;text-align:center;color:#888;font-size:.8rem;margin-top:auto}@media (max-width: 768px){.header-content{flex-direction:column;text-align:center;gap:1.5rem;padding:0 1rem}.partnership-logos{justify-content:center;margin-bottom:.75rem}.logo-zynex,.logo-maringa{height:35px}.logo h1{font-size:1.4rem;margin-bottom:.25rem}.logo p{font-size:.85rem}.header-stats{justify-content:center;gap:.75rem}.stat-card{min-width:75px;padding:.75rem .5rem}.stat-number{font-size:1.6rem}.stat-label{font-size:.75rem}.nav-tabs{padding:0 1rem;gap:0}.tab{padding:.75rem 1rem;font-size:.85rem;min-width:auto;flex:1;text-align:center}.main-content{padding:1rem}.machines-header{flex-direction:column;align-items:stretch;gap:1rem}.machines-filters{justify-content:center;flex-wrap:wrap;gap:.5rem}.filter-btn{padding:.5rem .75rem;font-size:.8rem;flex:1;min-width:120px}.machines-grid{grid-template-columns:1fr;gap:1rem}.machine-card{padding:1rem}.machine-header{margin-bottom:.75rem}.machine-name{font-size:1.1rem}.machine-info p{font-size:.85rem;margin-bottom:.5rem}.machine-actions{gap:.5rem;flex-wrap:wrap}.action-btn{flex:1;min-width:80px;padding:.5rem;font-size:.8rem}.log-entry{grid-template-columns:1fr;gap:.5rem;text-align:left;padding:.75rem}.log-entry>*{padding:.25rem 0}.log-timestamp{font-size:.8rem;color:#888}.log-machine{font-weight:600;color:#20e25b}.config-sections{grid-template-columns:1fr}.config-actions{flex-direction:column}.stats-grid{grid-template-columns:1fr;gap:1rem}.stat-box{padding:1rem}.alerts-header{flex-direction:column;gap:1rem}.alerts-summary{justify-content:center}.alert-card{padding:1rem}.alert-header{flex-direction:column;align-items:flex-start;gap:.5rem}.alert-actions{flex-wrap:wrap;gap:.5rem}.alert-actions .action-btn{flex:1;min-width:100px}}@media (max-width: 480px){.header-content{padding:0 .75rem;gap:1rem}.partnership-logos{flex-direction:row;gap:.75rem;align-items:center;justify-content:center}.logo-zynex,.logo-maringa{height:30px}.partnership-symbol{font-size:1.2rem;margin:0 .25rem}.logo h1{font-size:1.2rem}.logo p{font-size:.8rem}.header-stats{grid-template-columns:repeat(2,1fr);display:grid;gap:.5rem;width:100%}.stat-card{min-width:auto;padding:.6rem .4rem}.stat-number{font-size:1.4rem}.stat-label{font-size:.7rem}.nav-tabs{padding:0 .5rem}.tab{padding:.6rem .5rem;font-size:.8rem}.main-content{padding:.75rem}.machines-filters{flex-direction:column;gap:.5rem}.filter-btn{width:100%;min-width:auto}.machine-card{padding:.75rem}.machine-actions{flex-direction:column}.action-btn{width:100%;min-width:auto}.log-entry{padding:.5rem}.alert-actions{flex-direction:column}.alert-actions .action-btn{width:100%;min-width:auto}.config-item input,.config-item select{font-size:16px}.footer{padding:.75rem 1rem;font-size:.75rem}}
