:root{font-family:Inter,Arial,sans-serif;color:#0f172a;background:#f4f6f9}*{box-sizing:border-box}body{margin:0}.page{max-width:1200px;margin:0 auto;padding:24px}.header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid #dbe0ea;padding-bottom:16px}.eyebrow{margin:0;text-transform:uppercase;font-size:12px;color:#1e40af;font-weight:700}h1{margin:6px 0}.subtitle{margin:0;color:#64748b}.header-meta{display:flex;flex-direction:column;gap:4px;font-size:13px}.tabs{margin:16px 0;display:flex;gap:8px}.tab{border:1px solid #dbe0ea;border-radius:999px;background:#fff;padding:8px 12px;cursor:pointer}.tab.active{border-color:#1e40af;background:#dbeafe;color:#1e40af}.upload-panel{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #dbe0ea;border-radius:10px;padding:12px;margin-bottom:12px}.upload-label{display:flex;flex-direction:column;gap:6px;font-size:13px}.upload-panel button{border:1px solid #1e40af;background:#1e40af;color:#fff;border-radius:8px;padding:8px 12px}.upload-panel button:disabled{opacity:.6}.success{color:#15803d;margin:0}.warning,.error{border-radius:10px;padding:10px 12px;margin:8px 0}.warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.kpi-card,.card{background:#fff;border:1px solid #dbe0ea;border-radius:10px;padding:12px}.kpi-card p{margin:0;color:#64748b;font-size:13px}.kpi-card strong{font-size:26px}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:12px}.chart-wrap{height:260px}.filters{display:grid;grid-template-columns:1fr repeat(2,minmax(160px,220px));gap:8px;margin-bottom:10px}input,select{border:1px solid #dbe0ea;border-radius:8px;padding:8px 10px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid #dbe0ea;padding:8px;text-align:left;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:#475569}.badge{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px}.badge-pass{color:#166534;background:#dcfce7}.badge-fail{color:#991b1b;background:#fee2e2}.badge-neutral{color:#334155;background:#e2e8f0}.pagination{margin-top:10px;display:flex;justify-content:flex-end;gap:10px;align-items:center}.pagination button{border:1px solid #dbe0ea;border-radius:8px;background:#fff;padding:6px 10px}
