:root{--bg: #020617;--panel: rgba(15, 23, 42, .6);--panel-border: rgba(56, 189, 248, .15);--accent: #38bdf8;--accent-soft: rgba(56, 189, 248, .1);--text: #f8fafc;--muted: #94a3b8;--danger: #ef4444;--success: #10b981}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app-container{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#0f172acc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--panel-border);position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.75rem;color:var(--accent)}.header-logo h1{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:#fff}.header-actions{display:flex;align-items:center;gap:1.5rem}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,#1e293b,#020617);padding:2rem}.auth-card{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--panel-border);border-radius:24px;padding:2.5rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h2{font-size:1.5rem;margin-bottom:.5rem}.auth-header p{color:var(--muted);font-size:.9rem}.auth-feedback{margin-top:1.5rem;text-align:center;font-size:.85rem;color:var(--accent)}.content{flex:1;padding:2rem;max-width:1440px;margin:0 auto;width:100%}.dashboard-grid{display:grid;grid-template-columns:320px 1fr;gap:2rem;align-items:start}.sidebar{display:flex;flex-direction:column;gap:2rem}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;padding:1.5rem}.panel-head{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.panel-head h2{font-size:1rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.sensor-form{display:flex;flex-direction:column;gap:1.25rem}.sensor-form label{display:flex;flex-direction:column;gap:.5rem;font-size:.85rem;color:var(--muted)}input,select,textarea{background:#0f172acc;border:1px solid var(--panel-border);border-radius:8px;padding:.6rem .8rem;color:#fff;font-size:.9rem;outline:none;transition:border-color .2s}input:focus,select:focus{border-color:var(--accent)}.button{padding:.75rem 1rem;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;border:none;transition:all .2s}.button-primary{background:var(--accent);color:var(--bg)}.button-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.button-secondary{background:var(--accent-soft);color:var(--accent);border:1px solid var(--panel-border)}.ghost-button{background:transparent;color:var(--muted);border:none;font-size:.85rem;cursor:pointer}.ghost-button:hover{color:#fff}.tab-group{display:flex;background:#0003;padding:.25rem;border-radius:10px;margin-bottom:1rem}.tab-button{flex:1;padding:.5rem;border-radius:8px;font-size:.8rem;font-weight:600;color:var(--muted);background:transparent;border:none;cursor:pointer}.tab-active{background:var(--accent-soft);color:var(--accent)}.sensor-table-container{overflow-x:auto}.sensor-table{width:100%;border-collapse:collapse}.sensor-table th{padding:1rem;font-size:.75rem;color:var(--muted);border-bottom:1px solid var(--panel-border);text-align:left}.panel-message{margin-top:1rem;padding:.75rem;background:#38bdf81a;border:1px solid rgba(56,189,248,.2);border-radius:8px;color:var(--accent);font-size:.8rem;text-align:center}.empty-row{padding:3rem!important;text-align:center;color:var(--muted);font-style:italic}.system-settings{display:flex;flex-direction:column;gap:1.5rem;padding:.5rem 0}.setting-item{display:flex;flex-direction:column;gap:.25rem}.setting-item .label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.setting-item .value{font-size:.95rem;color:#fff;font-family:monospace;background:#0003;padding:.4rem .6rem;border-radius:6px;border:1px solid var(--panel-border)}.setting-item .value.success{color:var(--success);border-color:#10b98133}.sensor-table td{padding:1rem;border-bottom:1px solid rgba(255,255,255,.03);font-size:.9rem}.sensor-id-cell{display:flex;flex-direction:column}.sensor-name{font-weight:600}.sensor-type{font-size:.7rem;color:var(--muted)}.status-text{font-size:.8rem;font-weight:600;text-transform:capitalize}.action-row{display:flex;gap:.5rem}.button-icon{background:var(--accent-soft);border:1px solid var(--panel-border);color:var(--accent);padding:.4rem;border-radius:6px;cursor:pointer}.delete-icon{color:var(--danger);background:#ef44441a}.modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{width:90%;max-width:600px;max-height:80vh;overflow-y:auto}.metrics-grid{display:flex;flex-direction:column;gap:1.5rem}.sparkline{height:80px;display:flex;align-items:flex-end;gap:2px;background:#0003;padding:10px;border-radius:8px}.spark-bar{flex:1;background:var(--accent);border-radius:2px 2px 0 0}.status-pill{display:flex;align-items:center;gap:.5rem;padding:.25rem .75rem;border-radius:99px;font-size:.75rem;font-weight:600;background:var(--accent-soft);color:var(--accent)}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.status-online{color:var(--success);background:#10b9811a}.status-offline{color:var(--muted);background:#94a3b81a}.divider-text{display:flex;align-items:center;text-align:center;font-size:.65rem;font-weight:800;color:var(--muted)}.divider-text:before,.divider-text:after{content:"";flex:1;border-bottom:1px solid var(--panel-border);margin:0 1rem}.input-group{display:flex;gap:.5rem}.head-actions{display:flex;align-items:center;gap:1rem}.battery-badge{display:inline-flex;align-items:center;margin-left:.5rem;color:var(--muted)}.signal-badge{display:inline-block;margin-left:.5rem;font-size:.6rem;color:#38bdf8;opacity:.8}.text-active{color:var(--success)}.text-paused{color:var(--muted)}.status-syncing{background:#eab3081a;color:#eab308;border:1px solid rgba(234,179,8,.2)}.status-pill.status-syncing .status-dot{background:#eab308;box-shadow:0 0 8px #eab308;animation:pulse 1.5s infinite}.input-group input{flex:1}@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}}
