:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-primary-light: #eef2ff;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.05);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.05);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--sidebar-width: 240px;--header-height: 60px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased}#app{min-height:100vh}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .3s ease}.sidebar-logo{height:var(--header-height);display:flex;align-items:center;padding:0 24px;font-size:18px;font-weight:700;color:var(--color-primary);border-bottom:1px solid var(--color-border-light);letter-spacing:-.5px}.sidebar-logo span{background:linear-gradient(135deg,var(--color-primary),#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:var(--radius-sm);color:var(--color-text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:all .2s ease;margin-bottom:4px;cursor:pointer}.nav-item:hover{background:var(--color-primary-light);color:var(--color-primary)}.nav-item.active{background:var(--color-primary);color:#fff}.nav-item .icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:16px}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh}.page-header{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:50}.page-header h1{font-size:18px;font-weight:600;color:var(--color-text)}.header-right{display:flex;align-items:center;gap:12px}.logout-btn{padding:7px 14px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface);color:var(--color-text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.logout-btn:hover{color:var(--color-danger);border-color:var(--color-danger)}.page-body{padding:24px 32px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.metric-card{background:var(--color-surface);border-radius:var(--radius-md);padding:20px 24px;box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);transition:all .25s ease}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.metric-card .label{font-size:13px;color:var(--color-text-secondary);font-weight:500;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.metric-card .value{font-size:28px;font-weight:700;color:var(--color-text);letter-spacing:-1px}.metric-card .trend{font-size:12px;color:var(--color-success);margin-top:4px}.chart-section{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:24px}.chart-card{background:var(--color-surface);border-radius:var(--radius-md);padding:20px 24px;box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.chart-card .chart-title{font-size:15px;font-weight:600;color:var(--color-text);margin-bottom:16px}.chart-container{width:100%;height:320px}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:12px 16px;border-bottom:2px solid var(--color-border)}.data-table td{padding:12px 16px;font-size:14px;color:var(--color-text);border-bottom:1px solid var(--color-border-light)}.data-table tr:hover td{background:var(--color-primary-light)}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:9999px;font-size:12px;font-weight:500}.badge-primary{background:var(--color-primary-light);color:var(--color-primary)}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.full-card{grid-column:1 / -1}.realtime-feed{max-height:400px;overflow-y:auto}.realtime-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border-light);font-size:13px}.realtime-item .event-type{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}.realtime-item .event-time{color:var(--color-text-muted);font-size:12px;margin-left:auto}.time-picker{display:flex;align-items:center;gap:8px}.time-picker button{padding:6px 16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.time-picker button:hover,.time-picker button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.events-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.event-type-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.event-type-filter .chip{padding:4px 14px;border-radius:9999px;font-size:13px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.event-type-filter .chip:hover,.event-type-filter .chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}@media (max-width: 768px){.chart-section{grid-template-columns:1fr}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.page-body{padding:16px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}
