:root{--iknx-red:#d60b52;--iknx-red-light:#ff4081;--iknx-red-dark:#a00037;--accent-blue:#2196f3;--accent-green:#4caf50;--accent-orange:#ff9800;--error-red:#e53e3e}[data-theme=light]{--primary:var(--iknx-red);--on-primary:#fff;--primary-container:var(--iknx-red-light);--on-primary-container:#fff;--secondary:var(--accent-blue);--on-secondary:#fff;--tertiary:var(--accent-green);--on-tertiary:#fff;--background:#fff;--on-background:#212121;--surface:#fff;--on-surface:#212121;--surface-variant:#f5f5f5;--on-surface-variant:#757575;--outline:#e0e0e0;--error:var(--error-red);--on-error:#fff;--error-container:#e53e3e1a;--on-error-container:var(--error-red)}[data-theme=dark]{--primary:var(--iknx-red);--on-primary:#fff;--primary-container:var(--iknx-red-dark);--on-primary-container:#e1e1e1;--secondary:var(--accent-blue);--on-secondary:#121212;--tertiary:var(--accent-green);--on-tertiary:#121212;--background:#121212;--on-background:#e1e1e1;--surface:#1e1e1e;--on-surface:#e1e1e1;--surface-variant:#2d2d2d;--on-surface-variant:#b3b3b3;--outline:#424242;--error:var(--error-red);--on-error:#fff;--error-container:#e53e3e33;--on-error-container:var(--error-red)}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}body{background-color:var(--background);min-width:320px;min-height:100vh;color:var(--on-background);margin:0;transition:background-color .3s,color .3s}#root{width:100%;min-height:100vh}.login-screen{background-color:var(--background);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.theme-toggler{position:absolute;top:1rem;right:1rem}.theme-toggler button{background-color:var(--surface-variant);color:var(--on-surface-variant);border:1px solid var(--outline);cursor:pointer;border-radius:20px;padding:.5rem 1rem}.login-container{text-align:center;width:100%;max-width:420px}.login-card{background-color:var(--surface);border:1px solid var(--outline);border-radius:24px;padding:2rem;box-shadow:0 8px 32px #0000001a}.login-button{background-color:var(--primary);width:100%;color:var(--on-primary);cursor:pointer;border:none;border-radius:16px;padding:1rem;font-size:1.1rem;font-weight:700;transition:background-color .3s}.login-button:disabled{background-color:var(--outline);cursor:not-allowed}.register-screen{background-color:var(--background);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.register-container{text-align:center;width:100%;max-width:480px}.logo-img{width:120px;height:auto;margin-bottom:1.5rem}.title{color:var(--primary);margin-bottom:.5rem;font-size:2rem;font-weight:700}.subtitle{color:var(--on-surface-variant);margin-bottom:2rem;font-size:1.1rem}.register-card{background-color:var(--surface);border:1px solid var(--outline);border-radius:24px;padding:2rem;box-shadow:0 8px 32px #0000001a}.input-group{margin-bottom:1.5rem;position:relative}.input-group input{border:1px solid var(--outline);background-color:var(--background);width:100%;color:var(--on-background);border-radius:12px;padding:1rem;font-size:1rem}.input-group input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--secondary);outline:none}.password-toggle{cursor:pointer;background:0 0;border:none;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.password-toggle img{width:24px;height:24px;filter:var(--theme-filter,invert(0))}[data-theme=dark] .password-toggle img{--theme-filter:invert(1)}.register-button{background-color:var(--primary);width:100%;color:var(--on-primary);cursor:pointer;border:none;border-radius:16px;padding:1rem;font-size:1.1rem;font-weight:700;transition:background-color .3s}.register-button:disabled{background-color:var(--outline);cursor:not-allowed}.links-container{flex-direction:column;gap:.5rem;margin-top:1.5rem;display:flex}.form-link{color:var(--primary);font-weight:600;text-decoration:none}.form-link:hover{text-decoration:underline}.dashboard-container{padding:2rem}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.logout-button{background-color:var(--error);color:var(--on-error);cursor:pointer;border:none;border-radius:8px;padding:.5rem 1rem}.health-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.metric-card{background-color:var(--surface-variant);text-align:center;color:var(--on-surface-variant);border-radius:16px;padding:1.5rem;text-decoration:none;transition:transform .2s,box-shadow .2s}.metric-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px #0000001a}.metric-icon{margin-bottom:.5rem;font-size:2.5rem}.metric-name{font-weight:600}.groups-title{margin-bottom:1.5rem}.groups-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.group-card{background-color:var(--surface);border:1px solid var(--outline);border-radius:16px;padding:1.5rem}.group-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.group-name{color:var(--on-surface);font-weight:700}.badge{border-radius:20px;padding:.3rem .6rem;font-size:.8rem;font-weight:600}.badge-owner{background-color:var(--primary-container);color:var(--on-primary-container)}.badge-member{background-color:var(--secondary-container);color:var(--on-secondary-container)}.group-members{color:var(--on-surface-variant);margin-bottom:1rem}.group-actions .btn{width:100%}.monitoring-container{background-color:var(--background);color:var(--on-background);padding:2rem}@media (max-width:768px){.monitoring-container{padding:1rem}}.monitoring-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}@media (max-width:768px){.monitoring-header{flex-direction:column;align-items:stretch;gap:1rem}.monitoring-header>div{text-align:center;flex-direction:column;align-items:center;display:flex}.monitoring-header .d-flex{justify-content:center;gap:.5rem;flex-direction:row!important}}.monitoring-header h2{color:var(--primary)}.status-badge{color:#fff;border-radius:20px;padding:.3rem .7rem;font-size:.9rem}.status-connected{background-color:var(--accent-green)}.status-connecting,.status-authenticating{background-color:var(--accent-orange)}.status-error,.status-disconnected{background-color:var(--error-red)}.alert-error{background-color:var(--error-container);color:var(--on-error-container);border-radius:8px;margin-bottom:1rem;padding:1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background-color:var(--surface-variant);text-align:center;border-radius:16px;padding:1.5rem}@media (max-width:768px){.stat-card{padding:1rem}}.stat-card span{color:var(--on-surface-variant);display:block}.stat-card strong{color:var(--on-surface);font-size:1.8rem}@media (max-width:768px){.stat-card strong{font-size:1.4rem}}.filter-card{background-color:var(--surface);border:1px solid var(--outline);border-radius:16px;margin-bottom:2rem;padding:1.5rem}.filter-header,.filter-controls{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}@media (max-width:768px){.filter-header,.filter-controls{flex-direction:column;align-items:stretch;gap:.5rem}.filter-controls{text-align:center}.filter-controls>span{margin-bottom:.5rem}}.view-toggle{border:1px solid var(--primary);border-radius:20px;display:inline-flex;overflow:hidden}@media (max-width:768px){.view-toggle{width:100%;display:flex}}.view-toggle button{color:var(--primary);background-color:#0000;border:none;padding:.5rem 1rem;transition:background-color .2s,color .2s}@media (max-width:768px){.view-toggle button{flex:1}}.view-toggle button:not(:last-child){border-right:1px solid var(--primary)}.view-toggle button.active{background-color:var(--primary);color:var(--on-primary)}.vitals-chips{flex-wrap:wrap;gap:.5rem;display:flex}@media (max-width:768px){.vitals-chips{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;padding-bottom:.5rem;overflow-x:auto}.vitals-chips::-webkit-scrollbar{height:6px}.vitals-chips::-webkit-scrollbar-track{background:var(--surface-variant);border-radius:3px}.vitals-chips::-webkit-scrollbar-thumb{background:var(--primary);border-radius:3px}}.chip{border:1px solid var(--outline);background-color:var(--surface-variant);cursor:pointer;border-radius:20px;padding:.5rem 1rem}@media (max-width:768px){.chip{white-space:nowrap;flex-shrink:0}}.chip.active{color:#fff}.table-card{background-color:var(--surface);border-radius:16px;padding:1rem;overflow-x:auto}.vitals-table{border-collapse:collapse;width:100%}.vitals-table th,.vitals-table td{text-align:left;border-bottom:1px solid var(--outline);padding:1rem}.vitals-table th{font-weight:600}.placeholder-text{text-align:center;color:var(--on-surface-variant);padding:4rem}.member-graph-section{margin-bottom:2rem}.member-header{background-color:var(--surface-variant);border-radius:16px;margin-bottom:1rem;padding:1rem}.graphs-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.graphs-grid .card{min-height:200px;max-height:300px}@media (max-width:768px){.graphs-grid{grid-template-columns:1fr}}.members-card{background-color:var(--surface);border-radius:16px;margin-top:2rem;padding:1.5rem}.members-card ul{padding:0;list-style:none}.members-card li{border-bottom:1px solid var(--outline);justify-content:space-between;align-items:center;padding:1rem 0;display:flex}@media (max-width:768px){.members-card li{flex-direction:column;align-items:flex-start;gap:.5rem}.members-card li>div{flex-direction:column;gap:.3rem;width:100%;display:flex}.members-card li>div:last-child{flex-direction:row;justify-content:space-between;align-items:center}}.role-badge{border-radius:10px;padding:.2rem .5rem;font-size:.8rem}.role-badge.owner{background-color:var(--primary-container);color:var(--on-primary-container)}.role-badge.member{background-color:var(--secondary-container);color:var(--on-secondary-container)}.status-indicator.active{color:var(--accent-green)}.btn-remove{border:1px solid var(--error);color:var(--error);background:0 0;border-radius:8px;padding:.3rem .6rem}
