*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base: #0a0b0f;--bg-surface: #12141a;--bg-elevated: #1a1d26;--bg-hover: #21252f;--border: #2a2e3d;--border-subtle: #1e2230;--text-primary: #f0f2f8;--text-secondary: #8b90a7;--text-muted: #555b72;--accent: #6c7aff;--accent-glow: rgba(108, 122, 255, .15);--accent-dim: rgba(108, 122, 255, .08);--green: #34d399;--green-dim: rgba(52, 211, 153, .1);--yellow: #fbbf24;--yellow-dim: rgba(251, 191, 36, .1);--red: #f87171;--red-dim: rgba(248, 113, 113, .1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-card: 0 1px 3px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.2);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 0;gap:4px}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:0 20px 20px;border-bottom:1px solid var(--border-subtle);margin-bottom:8px}.sidebar-logo-icon{width:32px;height:32px;background:var(--accent);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 0 12px var(--accent-glow)}.sidebar-logo-text{font-size:16px;font-weight:700;letter-spacing:-.3px;color:var(--text-primary)}.sidebar-logo-text span{color:var(--accent)}.sidebar-section-label{font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);padding:12px 20px 4px}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:60px;flex-shrink:0;background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:16px}.topbar-left{display:flex;align-items:center;gap:12px}.topbar-title{font-size:15px;font-weight:600;color:var(--text-primary)}.topbar-right{display:flex;align-items:center;gap:10px}.page-content{flex:1;overflow-y:auto;padding:28px;display:flex;flex-direction:column;gap:24px}.input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:13px;padding:7px 12px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;border:none;transition:background .15s,opacity .15s;outline:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{opacity:.85}.btn-ghost{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-ghost.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.card-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.card-body{padding:20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:8px;transition:border-color .2s,transform .2s}.stat-card:hover{border-color:var(--accent);transform:translateY(-1px)}.stat-card-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:6px}.stat-card-value{font-size:32px;font-weight:700;letter-spacing:-1px;color:var(--text-primary);line-height:1}.stat-card-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:14px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-grid .full-width{grid-column:1 / -1}@media (max-width: 1024px){.dashboard-grid{grid-template-columns:1fr}}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;padding:0 0 12px;border-bottom:1px solid var(--border-subtle)}.data-table td{padding:11px 0;border-bottom:1px solid var(--border-subtle);font-size:13px;color:var(--text-primary)}.data-table tr:last-child td{border-bottom:none}.data-table .col-url{color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table .col-num{text-align:right;font-variant-numeric:tabular-nums;font-weight:500;color:var(--text-primary)}.data-table .col-bar{width:120px;padding-left:16px}.bar-bg{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .5s ease}.vitals-grid{display:flex;gap:12px;flex-wrap:wrap}.vital-item{flex:1;min-width:100px;background:var(--bg-elevated);border-radius:var(--radius-md);padding:16px;text-align:center;border:1px solid var(--border)}.vital-name{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}.vital-value{font-size:24px;font-weight:700;letter-spacing:-.5px}.vital-value.good{color:var(--green)}.vital-value.needs-improvement{color:var(--yellow)}.vital-value.poor{color:var(--red)}.vital-value.unknown{color:var(--text-secondary)}.vital-badge{display:inline-block;margin-top:6px;font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.vital-badge.good{background:var(--green-dim);color:var(--green)}.vital-badge.needs-improvement{background:var(--yellow-dim);color:var(--yellow)}.vital-badge.poor{background:var(--red-dim);color:var(--red)}.device-list{display:flex;flex-direction:column;gap:14px}.device-row{display:flex;flex-direction:column;gap:5px}.device-row-header{display:flex;justify-content:space-between;align-items:center}.device-name{font-size:13px;color:var(--text-secondary);font-weight:500}.device-count{font-size:13px;color:var(--text-primary);font-weight:600}.date-range-group{display:flex;gap:4px}.state-center{display:flex;align-items:center;justify-content:center;padding:48px 0;color:var(--text-muted);font-size:13px;gap:8px}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.domain-badge{background:var(--accent-dim);color:var(--accent);border:1px solid rgba(108,122,255,.3);border-radius:var(--radius-sm);font-size:12px;font-weight:500;padding:3px 10px;font-family:var(--font-mono)}.recharts-cartesian-grid line{stroke:var(--border-subtle)!important}.recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--bg-elevated)!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-card)!important;color:var(--text-primary)!important}
