:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a26;--bg-surface: #1e1e2c;--bg-hover: #252536;--border: #2a2a3d;--border-accent: #3a3a55;--text-primary: #e4e4ef;--text-secondary: #8888a0;--text-muted: #55556a;--accent-cyan: #00e5ff;--accent-cyan-dim: #00e5ff22;--accent-orange: #ff6b35;--accent-orange-dim: #ff6b3522;--accent-yellow: #ffd60a;--accent-yellow-dim: #ffd60a22;--accent-blue: #4ea8de;--accent-blue-dim: #4ea8de22;--accent-gray: #666680;--accent-gray-dim: #66668022;--accent-purple: #b388ff;--accent-purple-dim: #b388ff22;--accent-red: #ff4757;--accent-green: #2ed573;--font-display: "Space Grotesk", sans-serif;--font-mono: "JetBrains Mono", monospace;--radius: 4px;--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-mono);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}.app-layout{display:grid;grid-template-columns:220px 1fr;height:100vh;overflow:hidden}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:0;overflow-y:auto}.sidebar-brand{padding:24px 20px 20px;border-bottom:1px solid var(--border)}.sidebar-brand h1{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.5px;color:var(--accent-cyan)}.sidebar-brand span{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;display:block;margin-top:4px}.sidebar-nav{padding:12px 0;flex:1}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:10px 20px;color:var(--text-secondary);text-decoration:none;font-size:12px;font-weight:500;transition:all var(--transition);border-left:2px solid transparent}.sidebar-nav a:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-nav a.active{color:var(--accent-cyan);background:var(--accent-cyan-dim);border-left-color:var(--accent-cyan)}.main-content{overflow-y:auto;padding:28px 32px;background:var(--bg-primary)}.login-page{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.login-box{width:380px;background:var(--bg-secondary);border:1px solid var(--border);padding:40px 32px}.login-box h1{font-family:var(--font-display);font-size:22px;font-weight:700;margin-bottom:4px;color:var(--accent-cyan)}.login-box p{color:var(--text-muted);font-size:11px;margin-bottom:28px;text-transform:uppercase;letter-spacing:1.5px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-mono);font-size:13px;outline:none;transition:border-color var(--transition)}.form-group input:focus,.form-group select:focus{border-color:var(--accent-cyan)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);font-family:var(--font-mono);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition);text-transform:uppercase;letter-spacing:.5px}.btn:hover{background:var(--bg-hover);border-color:var(--accent-cyan)}.btn-primary{background:var(--accent-cyan);color:var(--bg-primary);border-color:var(--accent-cyan);font-weight:600}.btn-primary:hover{background:#0ce}.btn-danger{border-color:var(--accent-red);color:var(--accent-red)}.btn-danger:hover{background:#ff475722}.btn-sm{padding:5px 10px;font-size:10px}.btn-full{width:100%}.error-msg{color:var(--accent-red);font-size:11px;margin-top:8px}.page-header{margin-bottom:28px}.page-header h2{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.3px}.page-header p{color:var(--text-muted);font-size:11px;margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);padding:20px;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--accent-cyan)}.stat-card.orange:before{background:var(--accent-orange)}.stat-card.yellow:before{background:var(--accent-yellow)}.stat-card.blue:before{background:var(--accent-blue)}.stat-label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:8px}.stat-value{font-family:var(--font-display);font-size:28px;font-weight:700;color:var(--text-primary);line-height:1}.stat-sub{font-size:11px;color:var(--text-secondary);margin-top:6px}.data-table-wrap{background:var(--bg-secondary);border:1px solid var(--border);overflow:hidden}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{background:var(--bg-tertiary);padding:10px 14px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.data-table th:hover{color:var(--text-secondary)}.data-table td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text-secondary);white-space:nowrap}.data-table tr:hover td{background:var(--bg-hover);color:var(--text-primary)}.data-table .mono{font-family:var(--font-mono);font-size:11px}.badge{display:inline-block;padding:2px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border:1px solid}.badge-hot{color:var(--accent-orange);background:var(--accent-orange-dim);border-color:var(--accent-orange)}.badge-warm{color:var(--accent-yellow);background:var(--accent-yellow-dim);border-color:var(--accent-yellow)}.badge-cold{color:var(--accent-blue);background:var(--accent-blue-dim);border-color:var(--accent-blue)}.badge-dormant{color:var(--accent-gray);background:var(--accent-gray-dim);border-color:var(--accent-gray)}.badge-override{color:var(--accent-purple);background:var(--accent-purple-dim);border-color:var(--accent-purple)}.badge-hit{color:var(--accent-green);background:#2ed57322;border-color:var(--accent-green)}.badge-miss{color:var(--accent-red);background:#ff475722;border-color:var(--accent-red)}.progress-bar{height:6px;background:var(--bg-tertiary);overflow:hidden;margin-top:8px}.progress-fill{height:100%;transition:width .3s ease}.progress-fill.green{background:var(--accent-green)}.progress-fill.yellow{background:var(--accent-yellow)}.progress-fill.red{background:var(--accent-red)}.keys-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.key-card{background:var(--bg-secondary);border:1px solid var(--border);padding:20px}.key-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.key-card-title{font-family:var(--font-display);font-size:14px;font-weight:600}.toggle{position:relative;width:40px;height:20px;cursor:pointer}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-tertiary);border:1px solid var(--border);transition:all var(--transition)}.toggle-slider:before{content:"";position:absolute;height:14px;width:14px;left:2px;bottom:2px;background:var(--text-muted);transition:all var(--transition)}.toggle input:checked+.toggle-slider{background:var(--accent-cyan-dim);border-color:var(--accent-cyan)}.toggle input:checked+.toggle-slider:before{background:var(--accent-cyan);transform:translate(20px)}.config-section{background:var(--bg-secondary);border:1px solid var(--border);padding:24px;margin-bottom:20px}.config-section h3{font-family:var(--font-display);font-size:14px;font-weight:600;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.filters-bar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:flex-end}.filters-bar .form-group{margin-bottom:0}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px}.chart-card{background:var(--bg-secondary);border:1px solid var(--border);padding:20px}.chart-card h3{font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:16px;text-transform:uppercase;letter-spacing:.5px}.activity-feed{background:var(--bg-secondary);border:1px solid var(--border);max-height:400px;overflow-y:auto}.activity-feed h3{font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--text-secondary);padding:16px 20px 12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.activity-item{padding:8px 20px;border-bottom:1px solid var(--border);font-size:11px;display:flex;gap:12px;align-items:center}.activity-item:hover{background:var(--bg-hover)}.activity-time{color:var(--text-muted);min-width:70px}.activity-key{color:var(--text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis}.activity-ms{color:var(--text-muted);min-width:50px;text-align:right}.pagination{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:16px}.pagination span{color:var(--text-muted);font-size:11px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0008;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-secondary);border:1px solid var(--border);padding:28px;width:400px;max-width:90vw}.modal h3{font-family:var(--font-display);font-size:16px;font-weight:600;margin-bottom:16px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.mt-16{margin-top:16px}.text-muted{color:var(--text-muted)}.text-sm{font-size:11px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border)}::-webkit-scrollbar-thumb:hover{background:var(--border-accent)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state h3{font-family:var(--font-display);font-size:16px;margin-bottom:8px;color:var(--text-secondary)}
