:root{--bg: #f8f9fa;--surface: #ffffff;--text: #212529;--text-secondary: #6c757d;--border: #dee2e6;--primary: #0a66c2;--primary-hover: #084482;--success: #137333;--radius: 6px;--shadow: 0 1px 3px rgba(0, 0, 0, .08)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}.app{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);padding:24px 16px;box-shadow:var(--shadow)}.sidebar h1{font-size:18px;margin:0 0 24px;color:var(--primary)}.nav-link{display:block;padding:10px 12px;margin-bottom:6px;border-radius:var(--radius);color:var(--text-secondary);text-decoration:none;font-size:14px;cursor:pointer;border:none;background:none;width:100%;text-align:left}.nav-link:hover,.nav-link.active{background:#eef3f8;color:var(--primary)}.main{flex:1;padding:24px 32px;overflow:auto}.page-header{margin-bottom:20px}.page-header h2{margin:0 0 6px}.page-header p{margin:0;color:var(--text-secondary)}.filters{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-secondary);min-width:160px}.filters input,.filters select{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:24px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center;box-shadow:var(--shadow)}.metric-value{font-size:28px;font-weight:700;color:var(--primary)}.metric-label{font-size:12px;color:var(--text-secondary);margin-top:4px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{font-weight:600;color:var(--text-secondary);background:#f8f9fa}tr:hover td{background:#f8f9fa}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.loading,.error{padding:20px;color:var(--text-secondary)}.error{color:#d32f2f}
